Sunday 15 July 2012

c# - Should I keep adding conditions to my LINQ query or add a condition upfront and use two different queries? -


मेरे पास निम्न LINQ क्वेरी है:

  var सामग्री = _contentsRepository.GetAll () कहां (ए = & gt; एक। विषयक == विषयआईडी & amp; ए.कंन्टेंटटैपआईडी == कंटेंटटाइपआईडी और amp; a.ContentStatusId == contentStatusId) .ओलिस्ट ();   

मैं चाहूंगा कि यह चयन सामान्य रूप से आगे बढ़े, जब तक कि contentStatusId == 99. यदि यह मामला है तो मैं इसे किसी भी सामग्री स्टेटसैट के साथ डेटाबेस से एक पंक्ति प्राप्त करना चाहता हूं।

क्या पहली बार सामग्री स्टेटस की जांच करना सबसे अच्छा होगा और फिर इसे नीचे दो LINQ चुनकर टूट जाएगा या क्या कोई तरीका है जिससे मैं अपनी LINQ क्वेरी को संशोधित कर सकता हूं?

ध्यान दें कि मैं हूं SQL सर्वर 2012 और मेरा रिपॉजिटरी का उपयोग कर:

सार्वजनिक वर्चुअल IQueryable GetAll () {DbSet वापसी; }

मेरा मानना ​​है कि आप एक contentStatusId == 99 जोड़कर अपनी क्वेरी को संशोधित कर सकते हैं घटक को अपने विधेय के लिए जो शॉर्ट सर्किट को a.ContentStatusId == contentStatusId की तरह मूल्यांकन करता है:

  var सामग्री = _contentsRepository.GetAll ()। A = & gt; a.SubjectId == विषयआईडी & amp; amp; a.ContentTypeId == contentTypeId & amp; (contentStatusId == 99; a.ContentStatusId == contentStatusId)) .सूचीसूची ();   

सामान्य मामले में सब कुछ पहले की तरह काम करेगा।

मामले में जब contentStatusId 99 के बराबर होता है, तो हर पंक्ति के लिए contentStatusId == 99 का मूल्यांकन करने के लिए उपरि हो जाएगा, हालांकि मुझे लगता है कि आप रिपॉजिटरी के आधार पर इस भाग को पूछताछ कर एक true के रूप में लिखित किया जा सकता है आपको अपने लिए यह देखना चाहिए कि यह आपके सेटअप में कैसे प्रभाव डालता है।

No comments:

Post a Comment