按子集合的最大SUM值排序的LINQ语法
本文关键字:排序 LINQ 语法 子集合 SUM | 更新日期: 2023-09-27 18:10:03
我有以下记录
User
---------------
UserID | Name
---------------
1 | Johan
2 | Rick
---------------
UserDetail
----------------------------------
UserDetailID | UserID | Percentage
----------------------------------
1 | 1 | 10
2 | 1 | 30
3 | 2 | 50
4 | 2 | 10
----------------------------------
基本上,我想将每个UserID的百分比和订单的最大Total百分比相加。
在TSQL中:
SELECT
User.UserID
FROM
User
LEFT JOIN
(
SELECT
SUM(Percentage) [Total],
UserID
FROM
UserDetail
GROUP BY
UserID
) qry ON
User.UserID = qry.UserID
ORDER BY
qry.Total DESC
我的当前代码:
var orderedList = user.SelectMany(s => s.UserDetails).Sum(s => s.Percentage); // <-- I have no idea what I'm doing
听起来您根本不想使用SelectMany
—每个用户只需要一行。我怀疑你想要:
var orderedList = users.OrderByDescending(user => user.UserDetails.Sum(d => d.Percentage));