为什么NHibernate中的OneToManyPersister在调用GenerateInsertRowString()时会创建Update语句?
我有单向的一对多关系,我需要保存级联,但是当集合调用PerformInsert时,会发出更新。
以下是我的映射。我们正在使用存储库模式。 “Root”有一个“Parent”,“Parent”有一个“Child”列表。存储库保存“Root”和“Parent”,其“Child”列表应通过级联保存。
<class name="Root">
<id name="Id">
<generator class="My.DomainModel.NHibernate.AssignedOrGuidCombIdGenerator, My.DomainModel.NHibernate" />
</id>
<version name="Version" unsaved-value="0" />
<many-to-one name="Parent" column="ParentId" unique="True" />
</class>
<class name="Parent">
<id name="Id">
<generator class="My.DomainModel.NHibernate.AssignedOrGuidCombIdGenerator, My.DomainModel.NHibernate" />
</id>
<version name="Version" unsaved-value="0" />
<list name="Children" cascade="all">
<key column="ParentId"/>
<index column="Position"/>
<one-to-many class="Child"/>
</list>
</class>
<class name="Child" discriminator-value="G">
<id name="Id">
<generator class="My.DomainModel.NHibernate.AssignedOrGuidCombIdGenerator, My.DomainModel.NHibernate" />
</id>
<discriminator column="ChildType" type="char" />
<version name="Version" unsaved-value="0" />
<subclass name="SubChild1" discriminator-value="N">
<many-to-one name="AnotherClass1" column="Another1Id"/>
</subclass>
<subclass name="SubChild2" discriminator-value="A">
<many-to-one name="AnotherClass2" column="Another2Id"/>
</subclass>
</class>