2009-08-25 7 views
0

J'ai une seule table avec une hiérarchie à l'intérieur. J'utilise ActiveRecord. Comment puis-je convertir cela en une collection hiérarchique que je peux ensuite lier à une arborescence WinForms ou WPF?Subsonic 3 Création de collection hiérarchique?

Merci.

ID Name ParentID 
1 ALL 1 
2 ARGENTINA 1 
15 AUSTRALIA 1 
16 NW 15 
17 BLACKTOWN 16 
18 CORLETTE 16 
19 PRIMBEE 16 
20 TWEED HEADS 16 
21 QL 15 
22 ASHMORE 21 
23 ROBERTSON 21 
24 TOOWOOMBA 21 
25 TRINITY BEACH 21 
26 UNITED STATES 1 
27 AK 26 
28 CA 26 
29 NJ 26 
30 NIKISKI 27 
31 AMADOR CITY 28 
32 MOSS BEACH 28 
33 Essex 29 
34 Newark 33 
35 Ampere 33 
36 Avondale 33 
37 Beaufort 33 

Répondre

3

Créez une classe partielle et ajoutez la propriété Children (ou tout ce qui a du sens).

public IList<MyClass> Children. 

Puis, dans une méthode quelque part (dans votre repo, BLL, peu importe), la boucle et la charge:

var items=MyClass.All().ToList(); 

items.ForEach(x=>x.Children=items.Where(y=>y.ParentID==x.ID).ToList());