2012-11-13 22 views
9

में तत्वों अपवाद की तुलना नहीं कर सकते हैं कि मैं अनिवार्य रूप से है:एफई क्वेरी

public ActionResult MyAction(List<int> myIds) 
{ 
    var myList = from entry in db.Entries 
      where (myIds == null || myIds.Contains(entry.Id)) 
       select entry; 
    return View(myList); 
} 

उद्देश्य से पारित कर दिया आईडी के साथ ही आइटम प्राप्त या उन सभी को वापस जाने के लिए है। (अन्य मानदंडों स्पष्टता के लिए कतरना)

जब मैं myList लौट मैं एक अपवाद हो रही है, मैं कुछ डिबगिंग किया है और यह तब होता है जब कर एक .ToList()

प्रकार के 'तत्वों की तुलना नहीं कर सकते हैं System.Collections.Generic .List`1 '।
केवल आदिम प्रकार (जैसे इंट 32, स्ट्रिंग, और गाइड) और इकाई प्रकार समर्थित हैं।

+0

संभावित डुप्लिकेट [\ '1 केवल आदिम प्रकार प्रकार के 'System.Collections.Generic.ICollection तत्वों, गणन प्रकार और इकाई प्रकार की तुलना नहीं कर सकते हैं समर्थन कर रहे] (http:/

मैं करने के लिए आवश्यक /stackoverflow.com/questions/23937112/cannot-compare-elements-of-type-system-collections-generic-icollection1-only-p) –

+1

ध्यान दें कि यह "डुप्लिकेट" –

+0

उत्तर से अधिक डेढ़ साल पहले लिखा गया था सृजन की तारीख से महत्वपूर्ण है। Http://meta.stackexchange.com/questions/147643/should-i-vote-to-close-a-duplicate-question-even-though-its-much-newer-and-ha/147651#147651 देखें। यदि आप सहमत हैं कि यह स्पष्ट नहीं है, तो कृपया http://meta.stackexchange.com/questions/281980/add-clarification-link-to-possible-duplicate-automated-comment –

उत्तर

22

समस्या इसलिए थी क्योंकि myIds शून्य था।

public ActionResult MyAction(List<int> myIds) 
{ 
    if(myIds == null) 
    { 
     myIds = new List<int>();  
    } 
    bool ignoreIds = !myIds.Any(); 

    var myList = from entry in db.Entries 
       where (ignoreIds || myIds.Contains(entry.Id)) 
       select entry; 
    return View(myList); 
} 
की
+17

पर वोट दें अधिक विशेष रूप से, ऐसा इसलिए था क्योंकि आप थे 'कहां' खंड में एक शून्य जांच कर रही है। – htxryan

+0

ओह! धन्यवाद @ htxryan। मैंने आपकी टिप्पणी को लगभग याद किया, लेकिन यह मेरी खोज को और अधिक उत्तरों के लिए सहेजा गया – Pallavi

संबंधित मुद्दे