假设我有3张桌子:推车,篮子和鸡蛋,其中一个篮子可以包含许多鸡蛋,推车里有很多篮子。每个篮子都有一个映射到购物车的外键,每个鸡蛋都有一个映射到篮子的外键。
我需要返回一个包含这些列的表:
-Cart Name - 购物车中的篮子数量 - 购物车中的鸡蛋数量。
每张桌子都是EF,我正在使用linq。它是连接和计数的组合,我正在圈子里移动。
感谢您的帮助。
答案 0 :(得分:3)
我自己是一名LINQ-to-SQL人,但我相信EF自动生成一对多属性IEnumerable
,所以这应该适合你:
from cart in Carts
select new
{
CartName = cart.Name,
BasketCount = cart.Baskets.Count(),
EggCount = cart.Baskets.SelectMany(b => b.Eggs).Count()
}