Ich habe zwei Tabelle, TabelleA und TabelleB.konnte Sammlung nicht löschen: [NHibernate.Exceptions.GenericADOException]
tableA Spalte: tabAId, col2, col3 (tabAId primaryKey und Identitätsspalte.)
tableB Spalte: tabAId, Name (tabAId ist nicht null)
Ich habe Bag erstellen in hbm-Datei von tableA, um die Beziehung zu erhalten.
<bag name="tableB" lazy="true" inverse="false"
batch-size="25" cascade="all-delete-orphan">
<key column="tabAId" />
<one-to-many class="tableB" />
</bag>
Wenn ich versuche, Rekord es Exception werfen, wo, wie ich habe Liste der Kinder in tableA Instanz zu aktualisieren in tableA.
[NHibernate.Exceptions.GenericADOException] = { "konnte nicht Sammlung löschen: [MIHR.Entities.tableA.tableB # 21] [SQL: UPDATE dbo.tableB SET tabAId = null WHERE tabAId = @ p0]" }
Innerexception = { „Kann nicht den Wert NULL in Spalte einfügen‚tabAId‘Tabelle‚SA_MIHR_DEV.dbo.tableB‘;... Spalte nicht NULL-Werte erlaubt UPDATE nicht \ r \ nDie Anweisung wurde beendet“ }
Wenn ich Inverse = "true" setze, dann wird es neu erzeugte Identity Spalte Wert nicht einfügen in die untergeordnete Tabelle einfügen, während ein neuer Datensatz in die übergeordnete Tabelle eingefügt wird. –
Kohler: Bitte sagen Sie mir wie ich vorgehen soll, wenn ich 'inversr =" true "' setze. –
Jetzt sollten Sie das sehen ... Ich habe meine Antwort aktualisiert. Natürlich muss Ihre untergeordnete Entität einen Verweis auf Parent haben. Überprüfen Sie diese http://stackoverflow.com/a/30005490/1679310 für alle DETAILS –