Löschen eines untergeordneten Datensatzes aus der übergeordneten Auflistung

8

Ich entwickle eine Beispielanwendung, damit ich die Besonderheiten von NHibernate lernen kann. Ich habe Probleme mit einem Löschproblem. Ich möchte in der Lage sein, einen untergeordneten Datensatz zu löschen, indem ich ihn aus der Auflistung seiner übergeordneten Elemente lösche und dann den übergeordneten Datensatz speichere. Ich habe eine bidirektionale Eins-zu-viele-Beziehung eingerichtet und das Einfügen / Aktualisieren funktioniert großartig.

Hier sind meine Abbildungen

Korb:

<bag name="Items" inverse="true" cascade="all"> <key column="BasketId" /> <one-to-many class="BasketItem" /> </bag>

BasketItem:

<many-to-one not-null="true" name="Basket" column="BasketId" />

Ich möchte basket.RemoveBasketItem(BasketItem item) und dann Session.SaveUpdate(basket) aufrufen, damit der Warenkorb gelöscht wird. Ist das möglich?

    
Brian Tompsett - 汤莱恩 12.06.2009, 10:40
quelle

4 Antworten

16

Ändern Sie cascade="all" in cascade="all-delete-orphan" .

cascade="all" löscht nur Ihre untergeordneten Datensätze, wenn der übergeordnete Eintrag gelöscht wird.

    
mookid8000 12.06.2009, 10:44
quelle
2

Ich habe das gleiche Szenario und ich benutze cascade="all-delete-orphan" in bagList, aber wenn ich ein einzelnes untergeordnetes Element in einer Sammlung lösche, löscht es auch das übergeordnete Objekt.

    
Muhammad Usman Iqbal 08.01.2010 06:18
quelle
0

Ich hatte das gleiche Problem wie initthoney, weil ich eine neue Liste als ReadOnly aus meinem Sammlungsgetter zurückgebe. Ich habe festgestellt, dass ich die ReadOnly-Liste weiterhin verwenden kann, indem ich die Eigenschaft Zugriffsstrategie der Sammlung von nosetter auf field ändere.

    
John Galambos 31.01.2012 01:25
quelle
0

Ich hatte ein Problem, bei dem meine untergeordneten Elemente eine geordnete Auflistung zurückgegeben haben.

%Vor%

Ich habe die Reihenfolge in meine Zuordnung verschoben und die untergeordneten Elemente wie für IEnumerable zurückgegeben. Das hat für mich funktioniert!

    
Adauto 15.07.2015 20:00
quelle

Tags und Links