J'ai une table de base de données appelée MenuItem (MenuItemID, ParentMenuItemID, MenuItemName). Je veux l'utiliser pour alimenter un contrôle de menu (probablement le contrôle de menu .NET).
Chaque élément de menu a un parent. S'il n'y a pas de parent, il s'agit d'un élément de menu de niveau supérieur. J'ai créé une classe LINQ to SQL mappée à la table MenuItem. Comme ma table a une clé étrangère à elle-même de ParentMenuItemID à MenuItemID, ma classe MenuItem générée automatiquement contient une collection de MenuItem. Cette collection doit contenir tous les enfants d'un élément de menu.
Le résultat doit être stocké dans une liste.
Est-il possible de récupérer en une seule requête :
- tous les éléments du menu de niveau supérieur
- tous les enfants des éléments de menu de niveau supérieur rassemblés sous leurs objets parents
Il ne devrait pas y avoir de problème pour récupérer les éléments de menu de niveau supérieur, puis les itérer et interroger chaque enfant, ou récupérer tous les éléments de menu, puis les placer dans le bon parent. Mais si cela pouvait être fait en une seule requête... Je serais heureux :)