实体框架-选择按属性排序的单个记录
本文关键字:排序 单个 记录 属性 框架 选择 实体 | 更新日期: 2023-09-27 17:54:15
我有一个表,表的属性之一是TotalDue
。我希望首先按TotalDue
排序,然后选择"top"记录,在这种情况下,该记录将是具有最高值的记录。
homeVM.LastSaleAmount = (from i in salesService.GetSalesOrderHeaders()
.OrderByDescending(a => a.TotalDue).First();
这是我到目前为止所尝试的,但我认为.First()
需要一个参数,我认为我也需要一个选择,但不是很确定。
您可以尝试使用Take方法,就像top一样,但在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 您混合了方法语法和查询语法,而查询语法的使用是不必要的,这使得这变得更加困难。把它删掉:
homeVM.LastSaleAmount = salesService.GetSalesOrderHeaders()
.OrderByDescending(a => a.TotalDue)
.Select(a => a.TotalDue)
.First();
您正在尝试将整个实体放入LastSaleAmount
。使用.Select(a => a.TotalDue)
:
homeVM.LastSaleAmount = salesService.GetSalesOrderHeaders()
.OrderByDescending(a => a.TotalDue).Select(a => a.TotalDue).First();