在LINQ中组合多个表

时间:2012-01-04 09:40:05

标签: c# sql linq linq-to-sql

我有一个非常简单的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中做同样的事情,我知道如何对单个表进行分组,但是关于多个表我不知道。

3 个答案:

答案 0 :(得分:64)

对于分组多个表,您可以这样做:

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

答案 1 :(得分:29)

这可能会有所帮助:

(
    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是数据库上下文

答案 2 :(得分:0)

您可以使用以下命令。

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

效果很好。