在LINQ中组合多个表

Posted

tags:

篇首语:本文由小常识网(cha138.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中做同样的事情,我知道如何对单个表进行分组,但是关于多个表我不知道。

答案

要对多个表进行分组,您可以执行以下操作:

group new { r,s } by new { r.SpaceID, s.SpaceCode }
另一答案

这可能有所帮助:

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

以上是关于在LINQ中组合多个表的主要内容,如果未能解决你的问题,请参考以下文章

Linq多表查询 返回组合实体 踩坑记

如何在 LINQ lambda 中执行多个表之间的联接

错误 3002:映射片段中的问题 | c# linq 到实体

c# 用来自多个 Linq 查询的数据填充 listView

Entity Framework LINQ 复杂查询 - 组合多个谓词

如何在 LINQ 中选择多个表?