web-dev-qa-db-fra.com

Grouper plusieurs tables dans LINQ

J'ai une requête SQL très simple:

SELECT r.SpaceID, Count (*), SpaceCode 
FROM Rider r JOIN Spaces s 
ON r.SpaceID = s.SpaceID
GROUP BY r.SpaceID, s.SpaceCode 

Veuillez noter que ma clause group by est sur plusieurs tables, je veux faire la même chose dans LINQ, je sais comment grouper une seule table, mais à propos de plusieurs tables, je n'en ai aucune idée.

37
MegaMind

Pour regrouper plusieurs tables, vous pouvez procéder comme suit:

group new { r,s } by new { r.SpaceID, s.SpaceCode }
69
Pankaj Tiwari

cela pourrait aider:

(
    from r in db.Rider
    join s in db.Spaces
        on r.SpaceID equals s.SpaceID
    group new { r,s } by new { r.SpaceID, s.SpaceCode }
    into grp
    select new
    {
        Count=grp.Count(),
        grp.Key.SpaceID,
        grp.Key.SpaceCode
    }
)

Où db est le contexte de la base de données

33
Arion