Unerwartete Zeilenanzahl in Nhibernate, wenn übergeordnete Datensätze mit den zugehörigen untergeordneten Datensätze löschen

StackOverflow https://stackoverflow.com/questions/2282626

Frage

Ich habe eine übergeordnete Tabelle, Aufträge und ein Kind Tisch, [Order Details], ich habe Setup die fließend Mappings als -

(In der übergeordneten Order-Klasse)

HasMany<OrderDetails>
(x => x.Details).KeyColumn("OrderId").Cascade.AllDeleteOrphan().Inverse();

(Im Kind [Order Details] Klasse)

References(x => x.ParentOrder).Column("OrderId").Not.Nullable().Cascade.None();

Ich versuche, das übergeordnete Objekt durch den Aufruf zu löschen -

session.Delete(parent);
session.Flush();

Dies funktioniert nur, wenn es nur ein untergeordneter Datensatz ist, wenn mehr als ein Kind Aufzeichnungen sind, erhalten die Kinder gelöscht, aber die Eltern nicht !!! Und ich bekomme die gefürchteten -. Unerwartete Reihe Zählfehler

Ich bin sicher, dass dies etwas albern ist, dass ich tue, aber Schleppen durch die Bahn haben nichts aufgedreht.

Danke

War es hilfreich?

Lösung

Ok, dachte ich, dies, war es mir dumm zu sein, aber dann ist die Antwort helfen könnte jemand anderes, so hier geht.

Die [Order Details] Tabelle hat einen zusammengesetzten Schlüssel und ist mit den beiden [Orders] verknüpft und Tabelle [Products] (Ja, das ist die Northwind-Datenbank, dass mit denen ich arbeite). Für meinen Test hatte ich meine Produkte nicht Tabelle zugeordnet, und hatte meine [Order Details] Klasse mit einem einzelnen Primärschlüssel anstelle eines zusammengesetzten Schlüssel markiert. Also, wenn Nhibernate Zeilen gelöscht basierend auf dem Schlüssel, erwartet er, um zu sehen nur eine Zeile gelöscht werden, während mehrere in der Datenbank existiert. Welches ist, warum ich die Fehler. Eher klug von Nhibernate.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top