0

我有一个表,其中每一行都包含一个团队 ID、一个用户 ID 和一个布尔值,指示该用户是否是代表。用户可以是多个团队的代表,并且团队可以拥有多个代表。我试图找出谁是最多产的代表,以及他们代表了多少支球队。其实,我真的不在乎是谁,只在乎他们代表了多少支球队。

我可以用下面的 SQL 轻松地做到这一点,但我不知道如何在 LINQ 中编写它。如果可能的话,我想避免使用存储过程,因为它们在这个应用程序中很少使用,我想保持一致性。

SELECT MAX(a.RepCount) as TeamMaxRepCount
FROM
(SELECT DelegateUserID, COUNT(*) AS RepCount
FROM TeamDelegates
GROUP BY DelegateUserID) as a
4

1 回答 1

2

反过来。例如:

var x = TeamDelegates.GroupBy(t => t.DelegateUserID)
                     .Select(t => new {
                                          DelegateUserID = t.Key,
                                          RepCount = t.Count()
                                      })
                     .Max(t => t.RepCount);

这是您的 SQL 查询的确切表示。这甚至可以像sa_ddam213他的评论中提到的那样简单化。

于 2013-05-17T00:00:40.150 回答