C# 选择表中的最后一条记录
如何使用LINQ方法从数据库中检索最后一条记录C# 选择表中的最后一条记录,c#,linq,model-view-controller,C#,Linq,Model View Controller,如何使用LINQ方法从数据库中检索最后一条记录 PayrollRun test2 = (from R in database.PayrollRun select R).LastOrDefault(); d = test2.PayrollRunEndDate; LINQ to Entities无法识别方法“TradelineHR.Models.PayrollRun LastOrDefaultPayrollRun”方法,并且此方法无法转换为存储表达式。您
PayrollRun test2 = (from R in database.PayrollRun
select R).LastOrDefault();
d = test2.PayrollRunEndDate;
LINQ to Entities无法识别方法“TradelineHR.Models.PayrollRun LastOrDefaultPayrollRun”方法,并且此方法无法转换为存储表达式。您没有提到要用作排序条件的字段 让我们假设它是
PayrollRun.PayrollRunEndDate
我认为获取LastOrDefault最直观、可读的方法是将.OrderByDescending()
和.FirstOrDefault()结合起来
是否有任何属性或列可以表示订单?您如何知道哪一行是最后一条记录?var test2=database.PayrollRun.LastOrDefault();应该有用。其他命令(如FirstOrDefault)是否有效?如果不是,那么DBSet PayrollRun的定义肯定有问题。数据库不知道数据中的第一个或最后一个。这是由您在SQL中确定的,因此不清楚您在问什么(或为什么)。这将返回表中的第一条记录,而我需要返回最后一条记录检查在FirstOrDefault之前是否有OrderByDescending?还是错了吗?thx当我在FirstOrDefault之前提到带有OrderByDescending的ID字段时,它起作用了
PayrollRun test2 = (from R in database.PayrollRun
select R).OrderByDescending(r=>r.PayrollRunEndDate).FirstOrDefault();
d = test2.PayrollRunEndDate;