Linq查询以获取子项';儿童档案

Linq查询以获取子项';儿童档案,linq,Linq,在我的父子场景中,我需要获取所有客户的自定义列表及其订单和订单项的总数 客户可以有许多订单,订单可以有许多OrderItems。我需要编写一个查询,返回实体对象的集合,其中包含该客户对象的客户实体、订单总数和订单项目总数,例如 var result = from c in ctx.Customers from o in ctx.Orders from d in ctx.OrderItems select new List<Cust

在我的父子场景中,我需要获取所有客户的自定义列表及其订单和订单项的总数

客户可以有许多订单,订单可以有许多OrderItems。我需要编写一个查询,返回实体对象的集合,其中包含该客户对象的客户实体、订单总数和订单项目总数,例如

var result = from c in  ctx.Customers
         from o in  ctx.Orders
         from d in  ctx.OrderItems
         select new List<CustomerVM()
         {
            customer = c,
            totalOrders = o.Count,
            totalOrderItems = XXXX  
         }  
public class CustomerVM {
 public Customer customer {get; set;}
 public int totalOrders {get; set;}
public int totalOrderItems {get; set;}
}
var result=来自ctx.Customers中的c
从ctx中的o开始。订单
从ctx.OrderItems中的d开始

选择新列表您需要使用
SelectMany

var result = (from c in ctx.Customers
              select new CustomerVM
              {
                  customer = c,
                  totalOrders = c.Orders.Count(),
                  totalOrderItems = c.Orders.SelectMany(o => o.OrderItems).Count()
              }).ToList();

谢谢你的及时回复。我收到以下错误:无法在c.Orders上将方法组“Count”转换为非委托类型“int”。请选择Many(o=>o.OrderItems)。Count抱歉,只需使用括号:
Count()
而不是
Count
谢谢。我在SL4中运行这个,但它不会返回任何结果。当我调试它时,我得到了空值作为结果,尽管有4个客户也有一些订单。知道为什么吗?ctx是DomainContext如果你只是查询客户,你会得到4个结果吗
var result=ctx.Customers.ToList()?恐怕不行。其计数为0,但容量为4