NHibernate,一对一映射,级联插入

5 mapping nhibernate cascade insert one-to-one

我在Company类和CompanySettings类之间有一对一的关系.当我创建一个新的Company对象时,(在Company的构造函数中为其Settings属性创建了一个CompanySettings对象),然后

SaveOrUpdate(session, companyObject)
Run Code Online (Sandbox Code Playgroud)

我希望INSERT从公司级联到CompanySettings.但是,除非我在CompanySettings对象上明确调用SaveOrUpdate,否则不会发生这种情况.

映射文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"`>
  <class name="AST.Domain.Company, AST.Domain" table="Companies">
    <id name="EntityID" column="CompanyId">
      <generator class="guid.comb" />
    </id>
    <property name="CompanyName" />
    . . .
    <one-to-one name="Settings" class="AST.Domain.CompanySettings, AST.Domain"
                constrained="true" lazy="false" />
  </class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

我的公司设置类的映射文件:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="AST.Domain.CompanySettings, AST.Domain" table="CompanySettings">
    <id name="EntityID" column="CompanyId">
      <generator class="foreign">
        <param name="property">Company</param>
      </generator>
    </id>
    <property name="MaxUsers" />
    <one-to-one name="Company" class="AST.Domain.Company, AST.Domain" />
  </class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 5

您是否尝试指定cascade="all"你的一个一对一的映射?