我有一个表,其中每行包含一个团队ID,一个用户ID和一个布尔值,指示该用户是否是代表。用户可以是多个团队的代表,团队可以拥有多个代表。我正试图找出谁是最多产的代表,以及他们是多少代表队伍。实际上,我并不在乎它是谁,只是他们有多少支队伍。
我可以在SQL中使用以下内容轻松完成此操作,但我无法弄清楚如何在LINQ中编写它。我想尽可能避免使用存储过程,因为它们很少用在这个应用程序中,我想保持一致性。
SELECT MAX(a.RepCount) as TeamMaxRepCount
FROM
(SELECT DelegateUserID, COUNT(*) AS RepCount
FROM TeamDelegates
GROUP BY DelegateUserID) as a
答案 0 :(得分:2)
反过来说。 E.g:
var x = TeamDelegates.GroupBy(t => t.DelegateUserID)
.Select(t => new {
DelegateUserID = t.Key,
RepCount = t.Count()
})
.Max(t => t.RepCount);
您的SQL查询的确切表示形式。这甚至可以像他评论中提到的sa_ddam213
一样简单。