LastOrDefault vs FirstOrDefault

时间:2016-12-08 08:32:26

标签: c# linq

你能解释一下为什么LastOrDefault在FirstOrDefault没有任何问题的情况下无法正常工作的原因。看来这两种方法并不相同:

从LinqPad开始他的例子:

 var varone = Guid.Parse("bbb3d139-fbec-430c-9574-02f3412c95df");
 Price.Where(y => y.Id == varone && y.ApplicationDate.Value <= new DateTime(2016,06,01))
                .OrderByDescending(y => y.ApplicationDate.Value)
                .LastOrDefault().Dump();

我得到了

  

NotSupportedException:LINQ to Entities无法识别该方法   &#39; Nppg.Core.BusinessModels.BeperEntities.Price   LastOrDefaultPrice&#39;   方法,并且此方法无法转换为商店表达式。

但是如果我用FirstOrDefault

替换LastOrDefault没问题
 var varone = Guid.Parse("bbb3d139-fbec-430c-9574-02f3412c95df");
 Price.Where(y => y.Id == varone && y.ApplicationDate.Value <= new DateTime(2016,06,01))
                .OrderByDescending(y => y.ApplicationDate.Value)
                .FirstOrDefault().Dump();

0 个答案:

没有答案