2013-05-07 45 views
3

我有一个层次结构,例如:LINQ到选择父记录没有孩子

- Order 
    - order details 
     - work order header 
     - work order details 

我要选择没有工作订单的详细信息工作单头。

我有这个到目前为止,但它返回一级,订单的详细信息...我想下一个级别,工作订单标题。

IEnumerable<OrderDetail> odWithoutWoDtls = order.OrderDetails.Where(od => od.WorkOrderHeaders.Any(woh => woh.WorkOrderDetails.Count() == 0)); 

回答

5
IEnumerable<WorkOrderHeader> headersWithoutDetails = 
order.OrderDetails 
.SelectMany(od => od.WorkOrderHeaders) 
.Where(woh => !woh.WorkOrderDetails.Any()) 
+0

哇!这很快@steaks。谢谢! – 2013-05-07 03:28:09

+0

很高兴帮助! SelectMany()非常有用。 – 2013-05-07 03:39:36