Tengo una colección de empleados, y cada empleado tiene una colección de responsabilidades. Me gustaría generar una lista de los empleados ordenados por nombre y dar salida a sus responsabilidades, ordenadas por título.¿Cómo pedir una colección y su subcolección usando LINQ?
Por lo tanto, hay que emitir la siguiente manera:
Jane Jones
Responsabilidades:
Responsabilidad Un
Responsabilidad B
Mike Smith
Responsabilidades:
Responsabilidad Un
Responsabilidad C
Para obtener la colección inicial que utilizo:
var employees = _context.Employees.OrderBy(e => e.Name);
pero me parece que no puede encontrar la manera de ordenar la subcolección de Responsabilidades también.
Estoy utilizando MVC y mi vista recibe una colección de empleados fuertemente tipificados, por lo que no quiero compilar y devolver un tipo anónimo.
He decidido no ordenar la colelction cuando me tire de ella a partir de la base de datos. Técnicamente, ordenar es parte de la presentación, así que ahora lo estoy haciendo en View (estoy usando MVC). Ahora estoy ordenando la subcolección cuando hago un foreach sobre el empleado. Responsabilidades. –
Sin embargo, sería bueno saber cómo hacer esto para referencia futura. ¡Gracias! –
He agregado el segundo enfoque ... Lo siento, es bastante pesado también. No creo que haya una manera más fácil, así que estoy de acuerdo con usted: sería mucho mejor hacer un pedido en la vista o crear algún DTO especial (Data Transfer Object) y hacer una proyección en él y luego pasar a la vista en lugar del empleado –