c# - 如何使用 GroupBy 和 LEFT JOIN 进行 LINQ 查询

标签 c# linq linq-to-entities c#-4.0

我正在使用 EF4,我需要使用 LINQ 进行此查询,但我不知道如何做。

如果我有 3 个表:

  • 产品类型
  • 产品
  • 季节

产品类型->一对多->产品->多对一->季节

我想列出一个季度的所有 ProductType 及其产品。请注意,我需要列出所有 ProductType,即使那个季节里面没有产品也是如此。

谢谢你的帮助!

最佳答案

试试这个:

var query = from pt in model.ProductTypes
            join p in model.Product.Where(p => p.SeasonId == seasonId)
               on pt.Id equals p.ProductTypeId into g
            select new { ProductType = pt, Products = g };

我不得不承认我对 join ... into 总是有些生疏,但我认为这会满足您的需求。

关于c# - 如何使用 GroupBy 和 LEFT JOIN 进行 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416067/

相关文章:

visual-studio - 如何为 Entity Framework 复杂类型添加导航属性

linq - 递归 Linq 分组

entity-framework - 如何处理 Entity Framework 4.1 中的 "computed"属性?

c# - MySQL SELECT 命令被拒绝给用户 - MySql.Data.EntityFrameworkCore

c# - LINQ 查询中的三元运算符未按预期工作

c# - 如果没有适当的括号放置,求和运算无法给出预期结果?

c# - LINQ 连接来自不同类的值

c# - 找到最具体的匹配项目

c# - 我怎样才能在图片框中绘制一个在边缘标记的多边形

c# - Libtiff - 不同的 BitsPerSample - 有效或错误的 tiff 标签?