J'ai le tableau suivant, MenuItems, dans la base de données:Comment faire une requête récursive dans Linq2Sql?
ID ParentID Name
--- --------- -----
1 0 Item 1
2 1 Item 2
3 1 Item 3
4 0 Item 4
5 3 Item 5
Je veux écrire une méthode d'extension pour obtenir tous les éléments de menu à la racine de l'arbre. Quelque chose comme ceci:
public IQueryable<MenuItem> GetToRoot(this IQueryable<MenuItem> source, int menuItemID)
{
return from m in source
????
????
select m;
}
Si j'appelle cette méthode d'extension avec les données ci-dessus pour l'élément de menu avec ID 3, je devrais obtenir:
ID ParentID Name
--- --------- -----
1 0 Item 1
3 1 Item 3
Est-ce possible avec Linq2Sql avec un seul appel à la base de données?