计算多对多关系中的非重复值

本文关键字:关系 计算 | 更新日期: 2024-10-30 05:32:43

我的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 不在任何组中。

计算多对多关系中的非重复值

也许是这样的:

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

或者或者

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