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())