[英]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.