LINQ的Group By与Count组合使用

4
我正在尝试使用LINQ编写查询。
Select UserId, UserNumber 
FROM User
where UserNumber in
(Select UserNumber
        FROM User
        group by UserNumber
        having Count(UserId) = 1)

有什么提示吗?
2个回答

8
var query = from u in User
            group u by u.UserNumber into usergroup
            where usergroup.Count() == 1
            from item in usergroup
            select new { item.UserId,item.UserNumber };

这会生成一个查询吗?还是每个组一个查询? - Amy B
User实际上是类似于dbContext.Users时,这是一个单一的查询。 - Sander Rijken

0
如果你对子查询感兴趣,你可以这样做。
var subquery =
  from u in User
  group u by u.UserNumber into g
  where g.Count() = 1
  select g.Key;

var query =
  from u in User
  where subquery.Any(num => num == u.UserNumber)
  select u;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接