web-dev-qa-db-ja.com

LINQで複数のテーブルをグループ化する

非常に単純なSQLクエリがあります。

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

Group by句は複数のテーブルにあり、LINQでも同じことをしたいので、単一のテーブルをグループ化する方法は知っていますが、複数のテーブルについてはわかりません。

37
MegaMind

複数のテーブルをグループ化するには、次のようにします。

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

これは役立つかもしれません:

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

Dbはデータベースコンテキストです

33
Arion