计算多对多关系中的不同值

时间:2013-12-18 22:40:56

标签: c# .net linq entity-framework

我的EF上有多对多的关系。

Select * from [Group]
Select * from [User]
select * from [RelUserGroup] //relation between ground and users

我想知道我在桌子RelUserGroup上有多少区域用户。这在SQL上非常简单,但在EF中我没有这个表。

我如何计算所有群组中的用户数量!

Group
GroupId     Name              
----------- ------------------
1           DCE Administrators
2           Dispatcher        
3           Team Managers     
4           Resolver          
5           Requestor 

User
UserId      UserName
----------- ---------
1           anderson
2           Fabio

RelUserGrou
GroupId     UserId
----------- -----------
1           1
2           1
4           1

在这种情况下,我的计数是1,因为userId = 2不在任何组中。

1 个答案:

答案 0 :(得分:2)

也许是这样的:

var result = db.Users.Count(u => u.Groups.Any());

或者

var result = db.Groups.SelectMany(g => g.Users).Distinct().Count();