2012-07-10 22 views
19

Ben bir hata alıyorumBu hatayı C# nasıl çözebilirim? Aşağıdaki kodu kullanırken

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

mesajı: varlıkları için

LINQ 'TashihQuran.QuranWordsNew LastOrDefaultQuranWordsNew' yöntem yöntemini tanımak ve bu değil yöntem bir mağaza ifadesine çevrilemez.

+0

olası yinelenen (http://stackoverflow.com/questions/2170141/error-method-not-supported-by-linq-to-entities) – sloth

+0

olası çift [LINQ To Tüzel Kişilerin yöntemi tanımıyor Son. Gerçekten?] (Http://stackoverflow.com/questions/7293639/linq-to-entities-does-not-recognize-the-method-last-really) –

cevap

36

Hala IQueriable adresinde çalışıyorsunuz. Belki daha iyi cevabı burada

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

Bu bana çok yardımcı oldu !! –

45

ya, daha şık yerine

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

deneyin:

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

sadece geçen kaydını kullanmanız veritabanından tüm kayıtları getir iyi değil.

[LıNQ varlıkları tarafından desteklenmeyen Hata, yöntem] arasında
+1

İfadenizle katılıyorum, ancak OP'nin durumunda, v1 zaten veritabanından "tüm kayıtları" içermiyor mu? – gitsitgo

İlgili konular