ASP.NET MVC LINQ查询

时间:2011-02-01 10:07:01

标签: asp.net-mvc linq

当我使用查询时

var NewMatchs = (from x in entity.matches select x).LastOrDefault();

我得到这样的错误

  

LINQ to Entities无法识别方法'SocialSports.Models.match   LastOrDefaultmatch”   方法,这个方法不能   翻译成商店表达。

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

...谢谢

3 个答案:

答案 0 :(得分:8)

Linq to Entities不支持

LastOrDefault。您可以使用以下方法实现相同目的:

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

答案 1 :(得分: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();

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

或者尝试排序并调用 FirstOrDefault

答案 2 :(得分:1)