当我使用查询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