Considerate questa gerarchiaCome è possibile ordinare una gerarchia di oggetti per livello di profondità utilizzando LINQ?
A
|
--------------------------
| |
B C
| |
--------|-------- ---------
| | | | |
D E F G H
| | | |
| --------- ------- |
| | | | | |
I J K L M N
Ogni oggetto ha una proprietà Parent e di un insieme di elementi per i choldren, così per esempio, E ha un genitore di B, N di H, ecc A ha un valore null per il genitore. B.Items contiene D-F, ecc.
Che cos'è un'istruzione LINQ che posso ordinare in base al loro livello? Non mi interessa il tipo di ordinamento all'interno di un livello (cioè l'ordine di DH non importa, ma devono venire dopo B e C che devono venire dopo A.
L'unico modo in cui posso pensare è due dichiarazioni LINQ separate:
- Eseguire un aggregato su questo, il calcolo e la memorizzazione dei livelli, come si va
- Eseguire una seconda query LINQ sui risultati ordinazione dal Livello
B è facile, naturalmente. È una cosa con cui sto lottando, posso farlo naturalmente, ma io devo pensare che questo può essere ridotto a una dichiarazione LINQ.
LINQ a cosa? LINQ a SQL? LINQ alle entità? LINQ agli oggetti? – MarcinJuraszek
Penso che tu possa usare la procedura di memorizzazione per le prestazioni –
Il genitore conosce il bambino? – sven