46 votes

Regrouper plusieurs tables en 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 

Je sais comment grouper une table unique, mais je n'ai aucune idée de ce qu'il en est pour des tables multiples.

73voto

Pankaj Tiwari Points 1318

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

group new { r,s } by new { r.SpaceID, s.SpaceCode }

36voto

Arion Points 17617

Ceci pourrait vous 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

0voto

Xiao Points 1

Vous pouvez utiliser la commande suivante.

grp.Sum(x => x.r.Col1)

Il fonctionne bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X