2012-07-10 18 views
19

मैं जब निम्न कोड का उपयोग कर एक त्रुटि हो रही हैसी # में इस त्रुटि को हल करने के लिए कैसे?

var v1 = from P in db1.QuranWordsNews where P.Aye == perId select P; 
var vv = v1.LastOrDefault(); // The error occurs here 

संदेश:

संस्थाओं को LINQ विधि को न पहचाने 'TashihQuran.QuranWordsNew LastOrDefaultQuranWordsNew' विधि है, और इस विधि अभिव्यक्ति में विधि का अनुवाद नहीं किया जा सकता है।

+0

संभावित डुप्लिकेट [त्रुटि, विधि LINQ से इकाइयों द्वारा समर्थित नहीं है] (http://stackoverflow.com/questions/2170141/error-method-not-supported-by-linq-to-entities) – sloth

+0

संभावित डुप्लिकेट [LINQ से संस्थाएं अंतिम विधि को पहचान नहीं पाती हैं। वास्तव में?] (Http://stackoverflow.com/questions/7293639/linq-to-entities-does-not-recognize-the-method-last-really) –

उत्तर

36

मुझे लगता है कि आप अभी भी IQueriable में काम कर रहे हैं। बजाय

var vv = v1.ToList().LastOrDefault(); 

या, और अधिक सुरुचिपूर्ण

var vv = v1.AsEnumerable().LastOrDefault(); 
+0

यह मुझे बहुत मदद करता है !!!! –

45

प्रयास करें हो सकता है कि बेहतर जवाब यहाँ है:

var vv = v1.OrderByDescending(rec => rec.Id).FirstOrDefault(); 

डेटाबेस से सभी रिकॉर्ड लायें अभी पिछले रिकॉर्ड का उपयोग करने के लिए अच्छा नहीं है।

+1

अपने कथन के साथ सहमत हैं, लेकिन ओपी के मामले में, v1 में पहले से ही डेटाबेस से "सभी रिकॉर्ड" नहीं हैं? – gitsitgo

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