如何强制nhibernate设置子项的外键?

如何强制nhibernate设置子项的外键?,nhibernate,mapping,collections,foreign-keys,Nhibernate,Mapping,Collections,Foreign Keys,我在映射中有一个集合: <bag name="Values" cascade="all-delete-orphan" lazy="false" inverse="true"> <key column="[TemplateId]"/> <one-to-many class="MyNamespace.Value, MyLib"/> </bag> 值对象具有外键[TemplateId]。两个实体的生成器都设置为“标识”。 当我为父模板对象调

我在映射中有一个集合:

<bag name="Values" cascade="all-delete-orphan" lazy="false" inverse="true">
  <key column="[TemplateId]"/>
  <one-to-many class="MyNamespace.Value, MyLib"/>
</bag>

值对象具有外键[TemplateId]。两个实体的生成器都设置为“标识”。 当我为父模板对象调用session.Save()时,值对象的[TemplateId](外键)设置为零,因此会出现SQL异常。 如何让nhibernate将子项的FK值设置为插入的父对象的值?

我自己管理过: 我唯一需要做的就是按照以下方式设计子对象映射和持久化:

<many-to-one name="Template" class="MyNamespace.Template, MyLib"
                 column="[TemplateId]" not-null="true" />


因此,子对象引用的是父对象,而不是父对象的Id

解决方案如下: