J'ai une collection d'employés, et chaque employé a une collection de responsabilités. Je voudrais afficher une liste des employés triés par nom et publier leurs responsabilités, triés par titre.Comment commander une collection et sa sous-collection en utilisant LINQ?
Ainsi, il devrait être émis comme ceci:
Jane Jones
Responsabilités:
Responsabilité A
Responsabilité B
Mike Smith
Responsabilités:
Responsabilité A
Responsabilité C
Pour obtenir la collection initiale que j'utilise:
var employees = _context.Employees.OrderBy(e => e.Name);
mais je ne peux pas à comprendre comment commander la sous-collection Responsabilités également. J'utilise MVC et mon View reçoit une collection Employee fortement typée, donc je ne veux pas générer et renvoyer un type anonyme.
J'ai décidé de ne pas commander le colelction quand je la tire de la base de données. Techniquement la commande fait partie de la présentation, donc je le fais maintenant dans la vue (j'utilise MVC). Je commande maintenant la sous-collection quand je fais un foreach sur l'employé. Responsabilités. –
Serait bien de savoir comment faire cela pour référence future cependant. Merci! –
J'ai ajouté la 2ème approche .. Désolé, c'est assez lourd aussi. Je ne pense pas qu'il y ait un moyen plus facile, donc je suis d'accord avec vous - il serait préférable de faire des commandes dans la vue ou de créer un DTO (Data Transfer Object) spécial et de faire une projection dedans puis passer à la vue au lieu de l'employé. –