实体框架核心高效多对多计数?

时间:2017-09-20 03:32:33

标签: entity-framework entity-framework-core

我使用EF Core查询一些具有多对多关系的表格。

Rooms

[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](1024) NOT NULL,

RoomMembers

[ID] [bigint] IDENTITY(1,1) NOT NULL,
[RoomId] [bigint] NOT NULL,
[UserId] [nvarchar](450) NOT NULL

AspNetUsers

[Id] [nvarchar](450) NOT NULL
<...SNIP...>

我希望将Room列与成员的Count一起返回(即相应的RoomMember行数)。

我尝试了以下内容:

var result = context
   .Rooms
   .Select(r => new 
               { 
                   Room = r, 
                   MemberCount = r.RoomMembers.Count() 
               })
   .ToList();

然而,这导致多个Count查询。是否有更合理的方法可以在单次SQL Server中实现所需的结果?

0 个答案:

没有答案