webForumDet fria alternativet

Fungerar "self reference" med Wilson O/R Mapper?

.NET

6 svar · 411 visningar · startad av maqe

Medlem sedan dec. 2003824 inlägg
Frågan#1

Jag har ett object som har en collection av samma typ och i den skulle jag vilja ha alla barn, barnbarn etc. Går det att lösa med någon form av self reference eller nått i den stilen?

Medlem sedan dec. 19996 721 inlägg
#2

Visst kan du ha en collection av samma typ. Det är bara att mappa in. Har du stött på något problem?

Medlem sedan dec. 2003824 inlägg
#3

Nu har jag löst det såhär...

<entity type="Category" table="Category" keyMember="_iD" keyType="Auto">
<attribute member="_iD" field="CatID" alias="ID" />
<attribute member="_name" field="CatName" alias="Time" />
<attribute member="_parentID" field="ParentID" alias="ParentID" />

<relation relationship="OneToMany" member="_categories" Type="Category" field="ParentID" lazyLoad="true" />
</entity>

och då är _categories en IList och i den får jag alla barn. men barnbarn etc kanske inte går att lösa än då är det bättre att ha en metod som fixar det. Skulle behöva lite expertråd.

Medlem sedan dec. 19996 721 inlägg
#4

Du vill alltså kunna pocka ut all "avkomma" i en enda collection? Visst, det går att åstadkomma, med en nodepath-trigger i databasen, som i varje entitet lagrar "sökvägen". Det ska dock endast användas om det verkligen behövs. Den enklaste och mest logiska lösningen är att du gör en GetAll-metod som rekursivt hämtar det som behövs. Kom också ihåg att den collection som returneras bör vara readonly, eftersom det inte är rimligt att något läggs till i den (använd gärna en array).

Medlem sedan dec. 2003824 inlägg
#5

Tack för tipsen emission, jag kommer köra på en GetAll metod istället. Passar på med en fråga till som rör samma sak.
Jag skulle vilja ha ett objektets förälder och det borde med gå att lösa med någon form av relationsmappning. Jag har försökt använda nedanstående relation men får det inte att fungera.

<relation relationship="ManyToOne" member="_parentCat" Type="Category" field="CatID" lazyLoad="true" />
Medlem sedan dec. 19996 721 inlägg
#6

field="ParentID"

Medlem sedan dec. 2003824 inlägg
#7

emission skrev:

field="ParentID"

Hm den var ju solklar :D ... tack för hjälpen.

278 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)