2
单个查询我有以下两个表格获取外键表使用LINQ
Groups
- Id
- Name
Members
- Id
- GroupId
- Name
我想与他们的会员数显示组的列表。我可以获得所有组,然后使用foreach语句来计算成员数量。但这是非常低效的。
有没有办法写一个LINQ查询来返回单个查询中的成员数?
单个查询我有以下两个表格获取外键表使用LINQ
Groups
- Id
- Name
Members
- Id
- GroupId
- Name
我想与他们的会员数显示组的列表。我可以获得所有组,然后使用foreach语句来计算成员数量。但这是非常低效的。
有没有办法写一个LINQ查询来返回单个查询中的成员数?
你可以用简单的linq-to-entities查询来完成。您可以将其投影到匿名类型,也可以创建自己的类来存储信息。
var query = from g in context.Groups
join m in context.Members on g.Id equals m.GroupId into members
select new
{
Group = g,
MemberCount = members.Count(),
};
如果有外键关系,是不是会工作?
var q = context.Groups.Select(x => new { Group = x.Name, Count = x.Members.Count() });
还没有测试过,但是这有效吗? Group = g – James 2012-07-24 16:51:04
@James - 是的,或者你可以选择你想要的属性:'GroupId = g.Id,GroupName = g.Name,etc' – Aducci 2012-07-24 17:18:27