J'ai une table de données qui contient un-à-plusieurs auto-référentiel:LINQ: Counting Nombre total de Nested éléments
Plant
{
ID,
Name,
ParentID
}
Je suis en train de créer une requête LINQ qui me dira le total nombre de descendants provenant d'une plante.
Exemple:
J'ai 5 plantes:
One {ID = 1, Name = Pine, Parent = null};// This is the root
Two {ID = 2, Name = Evergreen, Parent = 1}
Three {ID = 3, Name = Winter Evergreen, Parent = 2}
Four {ID = 4, Name = Christmas Tree, Parent = 1}
Five {ID = 5, Name = Maple, Parent = null};// This is the root
Quand j'appelle ma requête LINQ avec une entrée de ID = 1
, je veux qu'il return 3
, parce qu'il ya 3 descendants de One
; Deux, Trois et Quatre. Five
n'est pas un descendant de One. La seule façon de le faire implique des requêtes linq récursives imbriquées sur les résultats internes. Je n'ai aucune idée de comment faire cela et je me sens comme s'il y avait un moyen plus facile. J'utilise C# 4.0 et LINQ si cela est important.
Vous parlez d'une table, donc je suppose que votre objectif est quelque chose qui peut se traduire en SQL? c'est-à-dire LinqToSql? (comme oppose à LinqToObjects, dont il existe des solutions faciles disponibles) –