我有一个表格,表格的一个属性是TotalDue
。我希望先按TotalDue
订购,然后选择“顶部”记录,在这种情况下将是记录具有最高价值。
homeVM.LastSaleAmount = (from i in salesService.GetSalesOrderHeaders()
.OrderByDescending(a => a.TotalDue).First();
这是我到目前为止所尝试过的,但我认为.First()
需要一个参数,我认为我需要一个选择,但不是很确定。
答案 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();