webForumDet fria alternativet

nhibernate parent/child

.NET

1 svar · 421 visningar · startad av henrikjohansson

Medlem sedan maj 2000360 inlägg
Frågan#1

Jag har en databas tabell som innehåller Id, Parent och Name.

Jag använder följande för att hämta ut alla rader ur databasen:

Personer = (List<Person>)session.CreateCriteria(typeof(Person)).List<Person>();

Klassen Person består av
int Id,
int ParentId
Person Parent
string Namn

Jag skulle vilja lägga till List<Person> Childs men är inte med på hur jag skall göra. Vill helst behålla databasen som den ser ut idag (om möjligt) och att man skall kunna ladda in hela "trädet" på en gång.

Har någon lust att sparka mig i rätt riktning, hittar bara exempel där parent och child är olika klasser, och inte så som jag gärna vill ha det nu.

Medlem sedan dec. 19996 522 inlägg
#2

Ska du göra ett träd kanske du ska kolla in celko och det han skrivit om ämnet, känns i mitt tyckte inte helt rätt att modellera ett helt trä som parent child av samma klass helt rakt av. Du kanske kan lösa det med nestade sets men det känns inte helt rätt. Smartaste om du vill ha det enkelt utan någon avancerad trädstruktur är att implementera Composite Pattern

http://www.dofactory.com/Patterns/PatternComposite.aspx, kanske sno lite idé från http://simoes.org/docs/hibernate-2.1/86.html

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)