4 votes

Linq pour sélectionner les enregistrements parents sans enfants

J'ai une hiérarchie en tant que telle :

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

Je veux sélectionner les en-têtes de bon de travail qui n'ont pas de détails de bon de travail.

Je l'ai fait jusqu'à présent, mais il renvoie un niveau supérieur, les détails de la commande... Je veux le niveau inférieur suivant, les en-têtes des bons de travail.

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

6voto

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X