2009-05-19 19 views
2

Ich versuche, einen Datensatz zu speichern, der über eine n: 1-Eigenschaftszuordnung verfügt. Ich versuche, hier ein neu erstelltes Elternobjekt zuzuordnen (oder benutze ein vorhandenes, aber das funktioniert gut), aber ich erhalte einen Fehler, wenn ich versuche, die ID des Elternobjekts zur Tabelle des Kindes hinzuzufügen. Es kann nicht NULL zur Tabelle hinzugefügt werden, was wahr ist, aber ich dachte nHibernate war clever genug, um das Elternobjekt zuerst zu speichern, selbst wenn ich das Kind hinzufüge.nHibernate: Speichern eines neuen übergeordneten Objekts beim Erstellen eines untergeordneten Objekts

Mappings:

Kind:

<many-to-one name="parent" class="ParentClass" column="parentID" cascade="all"/> 

Parent:

<bag name="DataList" table="ChildTable" lazy="false" inverse="true" cascade="all-delete-orphan"> 
     <key column="parentID" /> 
     <one-to-many class="ChildClass" /> 
    </bag> 

Im Grunde ist dies etwas nHibernate tun kann?

Antwort

1

Ich kann Ihre übergeordnete Zuordnung nicht sehen, aber ich würde wetten, wenn Sie inverse = true und cascading für eine Reihe von untergeordneten Objekten aktiviert haben, und Sie Nullen in der parentID-Spalte Ihres untergeordneten Objekts zulassen, wann Der Elternteil, der damit zurechtkam, würde das Kindobjekt richtig aktualisieren.

0

Dieses Verhalten kann dadurch verursacht werden, dass Ihr Primärschlüssel "zugewiesen" und nicht von Nhibernate generiert wurde.

Verwandte Themen