ASP.NET MVC LINQ查询

Mut*_*thu 5 linq asp.net-mvc

当我使用查询

var NewMatchs = (from x in entity.matches select x).LastOrDefault();
Run Code Online (Sandbox Code Playgroud)

我得到这样的错误

LINQ to Entities无法识别方法'SocialSports.Models.match LastOrDefaultmatch'方法,并且此方法无法转换为商店表达式.

我的代码有什么问题???

谢谢...

Mah*_*aga 8

LastOrDefaultLinq to Entities不支持.您可以使用以下方法实现相同目的:

var lastmatch = (from x in entity.matches select x)
                      // Assuming you have some kind of timestamp
                     .OrderByDescending(s => s.Date) 
                     .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)


Jak*_*cki 7

您不能使用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();
Run Code Online (Sandbox Code Playgroud)

但是这将从db加载所有匹配并执行Linq到对象.

或者尝试排序并调用FirstOrDefault.