C# 选择表中的最后一条记录

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”方法,并且此方法无法转换为存储表达式。您

如何使用LINQ方法从数据库中检索最后一条记录

   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;