c# - How can I Skip and Take objects until I have 10 distinct ones in LINQ to Entities? -
यह समस्याग्रस्त कोड है:
var अलगकैट नाम = सभी कैटस। चयन करें (सी = & gt ; c.CatName) डिस्टिंक (); अगर (skip.HasValue) अलग CatNames = distinctCatNames। स्किप (skip.Value); यदि (take.HasValue) distinctCatNames = distinctCatNames। ले लो (take.Value); Var अलगकैटनामफ़ील्ड = अलगकाट नाम .ओलिस्ट (); यदि आप कल्पना करते हैं कि मेरे पास 100 बिल्लियों की सूची है, तो मैं 10 विशिष्ट नामों का चयन करना चाहता हूं। यह एक पृष्ठांकित सूची में जा रहा है, इसलिए इसे छोड़ना और उपयोग करना होगा।
उपरोक्त काम नहीं करेगा, क्योंकि इसे ऑर्डर बी के साथ ऑर्डर किया जाना है।
अगर मैं ऑर्डरबी अलग होने के बाद, मैं छोड़ और नहीं ले सकता क्योंकि परिणाम IOrderedQueryable है, IQueryable नहीं है (संकलक त्रुटि)।
यदि मैं पहले ऐसा करता हूं, तो त्रुटि कहती है DbSortClause अभिव्यक्ति का एक प्रकार होना चाहिए जो कि तुलनीय है। मुझे यह सुनिश्चित करने की आवश्यकता है कि डाकू के नीचे यह मेरी क्वेरी को ठीक से अनुवादित कर रहा है, क्योंकि बहुत सी बिल्लियों हो सकती हैं, इसलिए मैं यह सुनिश्चित करना चाहता हूं कि यह एसक्यूएल उत्पन्न करे कि इसमें सभी बिल्लियों को प्राप्त करने और फिर उस संग्रह पर करने के बजाय क्वेरी को छोड़ दें / लें।
कोई विचार?
आपको वस्तुओं को ऑर्डर करने की ज़रूरत है, लेकिन फिर आप इसे चर के रूप में टाइप कर सकते हैं एक IQueryable के बजाय एक IOrderedQueryable : var अलगकैट नाम = सभी कैटस। चयन करें (c = & gt; c.CatName)। निस्संदेह ( )। ऑर्डर बाय (नाम = & gt; नाम)। एन्क्यूलेबल ();
Comments
Post a Comment