當我使用查詢ASP.NET MVC LINQ查詢
var NewMatchs = (from x in entity.matches select x).LastOrDefault();
我得到這樣
LINQ到實體錯誤不能識別方法 'SocialSports.Models.match LastOrDefaultmatch' 方法,而這種方法不能將 翻譯成商店表達式。
我的代碼出了什麼問題?
謝謝...
當我使用查詢ASP.NET MVC LINQ查詢
var NewMatchs = (from x in entity.matches select x).LastOrDefault();
我得到這樣
LINQ到實體錯誤不能識別方法 'SocialSports.Models.match LastOrDefaultmatch' 方法,而這種方法不能將 翻譯成商店表達式。
我的代碼出了什麼問題?
謝謝...
不能使用LastOrDefault查詢EF實體,它不能被轉換爲T-SQL。
Linq to Entities不支持所有的LINQ方法。
列表的所有支持/不支持的方法:
http://msdn.microsoft.com/en-us/library/bb738550.aspx
你可以嘗試
var NewMatchs = (from x in entity.matches select x).ToList().LastOrDefault();
但是這將加載所有比賽從數據庫,並執行LINQ到對象。
或嘗試排序並致電FirstOrDefault。
LastOrDefault
Linq中是不支持的實體。您可以使用以下方法實現相同:
var lastmatch = (from x in entity.matches select x)
// Assuming you have some kind of timestamp
.OrderByDescending(s => s.Date)
.FirstOrDefault();
.ToList()。LastOrDefault()awesome! – timothyclifford 2011-05-11 02:46:34