我有一个查询,它为我提供了用户所属的所有俱乐部的列表。有 3 个实体 User、Club、ClubMember。存在多对多关系,ClubMember作为俱乐部和用户之间的关联。
var clubs = db.Users
.Where(u => u.UserName == User.Identity.Name)
.SelectMany(u => u.ClubMembers)
.Select(m => m.Club)
.ToList();
在表格的每一行上,我都会添加一个链接来显示俱乐部的其他成员。所以表格行看起来像这样;
Club1 - This is club one - "show all members"
Club2 - This is club two - "show all members"
现在我想做的是包含在“显示所有成员”链接中,包括成员的数量,所以它看起来像这样。
Club1 - This is club one - "show all members (25)"
Club2 - This is club two - "show all members (14)"
所以我的问题是如何修改查询以返回每个俱乐部的成员(member)总数?
最佳答案
可以肯定地说,Club 对象上也存在一个 ClubMembers 列表。因此,您的查询语句应该如下所示:
var clubs = db.Users
.Where(u => u.UserName == User.Identity.Name)
.SelectMany(u => u.ClubMembers)
.Select(m => new SomeType{ Club = m.Club, NumberOfMembers = m.Club.ClubMembers.Count()})
.ToList();
关于c# - 使用 LINQ 进行实体计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13752357/