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

C# Linq选择没有子记录的父记录,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我有这样的层次结构: - Order - order details - work order header - work order details 我想选择没有工单详细信息的工单标题 到目前为止,我有这个,但它返回一个级别,订单细节…我想要下一个级别,工作订单标题 IEnumerable<OrderDetail> odWithoutWoDtls = order.OrderDetails.Where(od => od.WorkOrderHe

我有这样的层次结构:

- Order
  - order details
      - work order header
         - work order details
我想选择没有工单详细信息的工单标题

到目前为止,我有这个,但它返回一个级别,订单细节…我想要下一个级别,工作订单标题

IEnumerable<OrderDetail> odWithoutWoDtls = order.OrderDetails.Where(od => od.WorkOrderHeaders.Any(woh => woh.WorkOrderDetails.Count() == 0));
IEnumerable odwithout odtls=order.OrderDetails.Where(od=>od.WorkOrderHeaders.Any(woh=>woh.WorkOrderDetails.Count()==0));
IEnumerable headers无详细信息=
order.OrderDetails
.SelectMany(od=>od.WorkOrderHeaders)
.Where(woh=>!woh.WorkOrderDetails.Any())

Wow!那太快了,牛排。非常感谢。很乐意帮忙!SelectMany()非常有用。顺便说一句,SelectMany()生成一个连接。要使其成为右连接,请将.DefaultIfEmpty()添加到.SelectMany()的第一个参数
IEnumerable<WorkOrderHeader> headersWithoutDetails = 
order.OrderDetails
.SelectMany(od => od.WorkOrderHeaders)
.Where(woh => !woh.WorkOrderDetails.Any())