Linq选择没有子节点的父记录

时间:2013-05-07 03:17:05

标签: c# asp.net-mvc 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));

1 个答案:

答案 0 :(得分:6)

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