实体框架 - 选择属性排序的单个记录

时间:2015-06-08 19:08:19

标签: c# entity-framework

我有一个表格,表格的一个属性是TotalDue。我希望先按TotalDue订购,然后选择“顶部”记录,在这种情况下将是记录具有最高价值。

    homeVM.LastSaleAmount  = (from i in salesService.GetSalesOrderHeaders()
                                  .OrderByDescending(a => a.TotalDue).First();

这是我到目前为止所尝试过的,但我认为.First()需要一个参数,我认为我需要一个选择,但不是很确定。

3 个答案:

答案 0 :(得分:2)

你可以试试Take方法,就像顶级,但在Linq世界。

homeVM.LastSaleAmount = salesService.GetSalesOrderHeaders().OrderByDescending(a => a.TotalDue).Take(1);

https://msdn.microsoft.com/en-us/library/vstudio/bb503062%28v=vs.100%29.aspx

答案 1 :(得分:1)

您正在混合方法语法和查询语法,并且您不必使用查询语法并使其变得更加困难。只需删除它:

homeVM.LastSaleAmount = salesService.GetSalesOrderHeaders()
    .OrderByDescending(a => a.TotalDue)
    .Select(a => a.TotalDue)
    .First();

答案 2 :(得分:0)

您正试图将整个实体放入LastSaleAmount。使用.Select(a => a.TotalDue)之类的:

homeVM.LastSaleAmount  = salesService.GetSalesOrderHeaders()
                              .OrderByDescending(a => a.TotalDue).Select(a => a.TotalDue).First();