繁体   English   中英

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

[英]How make LINQ query with GroupBy and LEFT JOIN

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

如果我有3个表:

  • 产品类别
  • 产品
  • 季节

ProductType - > one-to-many - > Product - > many-to-one - > Season

我希望在一个季节中列出所有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总是有些生疏,但我认为这会做你想要的事情。

假设你确实想要一个左连接,根据你的问题,做:

var query = from pt in model.ProductTypes
            select new
            {
                ProductType = pt,
                Products = from p in pt.Products
                           where p.SeasonId == seasonId
                           select p
            };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM