2016-07-07 21 views
0

Ich habe zwei Tabellen, group und group_user_xref.Linq Join mit Count

Ich muss die Gruppen mit einer Spalte auflisten, die zählt, wie viele Benutzer in dieser Gruppe sind. In der Minute scheint die Zählung Ich habe nur die Gruppe zu zählen, da es immer wieder 1.

Bisher habe ich:

(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(); 

Wie kann ich die Zählungen der Benutzer in jeder Gruppe erhalten?

Antwort

1

Sie group by zu dem auch die user id - so gibt es Ihnen eine Gruppierung für jeden Benutzer in jeder Gruppe - und dass die count ist

(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() 
+0

konnte wirklich nur 'Gruppe g2 von g in x ' – juharr

+0

@juharr ich kann - nur versucht, es näher zu halten, was er tat - so ist es klarer. Natürlich in seinem Code am Ende ist es besser, dass er tut, was Sie geschrieben haben –

+0

@GiladGreen danke für Ihre Hilfe – Dave