我正在使用EF4,我需要使用LINQ进行此查询,但我不知道如何。
如果我有3张桌子:
ProductType - >一对多 - > 产品 - >多对一 - > 季节
我希望在一个季节中列出所有ProductType及其产品。请注意,我需要列出所有ProductType ,即使该季节内没有产品。
谢谢你的帮助!
答案 0 :(得分:4)
试试这个:
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
总是有些生疏,但我认为这会做你想要做的事。
答案 1 :(得分:2)
假设你确实想要一个左连接,根据你的问题,做:
var query = from pt in model.ProductTypes
select new
{
ProductType = pt,
Products = from p in pt.Products
where p.SeasonId == seasonId
select p
};