c# - 使用 LINQ 进行实体计数

标签 c# entity-framework linq-to-entities

我有一个查询,它为我提供了用户所属的所有俱乐部的列表。有 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/

相关文章:

c# - Asp.net - 更新相关数据 - 提交时获取null

c# - CLR 检测到 Entity Framework 的无效程序

c# - Entity Framework 和面向服务的架构如何入手?

c# - LINQ to SQL 在更新后返回旧数据

c# - 如果键子串存在则返回字典值

entity-framework - EF Core ValueGenerateOnAdd 不适用于 postgresql

c# - 有没有办法监视控制台应用程序的状态?

c# - LINQ 连接如何只选择第一条记录?

c# - 如何解析日期格式01022013、20130102?

c# - 在运行时更新网格对撞机的替代方案?