如何在Description
的{{1}}中撰写Recipe
。
我试图使用recipe=
,但它给出了错误的结果。它会删除result1中的一个项目。
Exptected output:
join r in Recipe on d.DishID equals r.DishID
答案 0 :(得分:2)
您想要进行左连接
要做到这一点,你需要在linq中做一些额外的事情,不知道为什么它本身不支持但是它不是。
var result1 = (
from d in Dish
join c in Component on d.DishID equals c.DishID into items
join r in Recipe on d.DishID equals r.DishID into recipes
select new Item {
DishID = d.DishID,
components = items.DefaultIfEmpty()
.Where(a=>a!=null)
.ToArray(),
recipe = recipes.DefaultIfEmpty()
.Where(a=>a!=null)
.Select(a=>a.Description)
.FirstOrDefault()
}).ToList();