Linq加入计数

时间:2016-07-07 14:10:46

标签: c# linq

我有两个表,groupgroup_user_xref

我需要列出一个列,该列计算该组中有多少用户。在那一刻,我的计数似乎只计算该组,因为它总是返回1.

到目前为止,我有:

(from g in db.group
 join g2 in db.group_user_xref
 on g.ID equals g2.group_uid
 where g2.user_uid == user_auth_id 
 group g by new { g.ID, g.group_name, g.group_code, g.owner_id, g2.user_uid}   into x
 select new GroupSummary { ID = x.Key.ID, GroupOwner = x.Key.owner_id, GroupCode = x.Key.group_code, GroupName = x.Key.group_name, GroupCount = x.Count() }).ToList();

如何获取每组中的用户数?

1 个答案:

答案 0 :(得分:1)

group by也添加了user id - 因此它为每个组中的每个用户提供了一个分组 - 为此,count就是一个

(from g in db.group
join g2 in db.group_user_xref
on g.ID equals g2.group_uid
where g2.user_uid == user_auth_id 
group g by new 
{ 
    g.ID, 
    g.group_name, 
    g.group_code, 
    g.owner_id
}   into x
select new GroupSummary 
{ 
    ID = x.Key.ID, 
    GroupOwner = x.Key.owner_id, 
    GroupCode = x.Key.group_code, 
    GroupName = x.Key.group_name, 
    GroupCount = x.Count() 
}).ToList()