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

本文关键字:记录 选择 Linq | 更新日期: 2023-09-27 18:12:19

我有一个这样的层次结构:

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

我想选择没有工单详细信息的工单头。

到目前为止我有这个,但它返回上一级,订单详细信息…我想要下一层,工单头。

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

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

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