NHibernate映射约束冲突

NHibernate映射约束冲突,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我在做一些愚蠢的事,我就是看不出来 我只希望类Party使用下面的映射拥有一组PartyName,并且无法插入违反FK约束的PartyName。将在必要时发布目标代码,但怀疑它是映射 干杯, 贝里尔 错误和测试代码 测绘(缔约方) 映射(PartyName) 我是对的,这是映射,我是对的,这很愚蠢 我把外键上的列名搞错了 <set access="field.camelcase-underscore" cascade="all-delete-orphan" inv

我在做一些愚蠢的事,我就是看不出来

我只希望类Party使用下面的映射拥有一组PartyName,并且无法插入违反FK约束的PartyName。将在必要时发布目标代码,但怀疑它是映射

干杯,
贝里尔

错误和测试代码 测绘(缔约方)

映射(PartyName)


我是对的,这是映射,我是对的,这很愚蠢

我把外键上的列名搞错了

        <set access="field.camelcase-underscore" cascade="all-delete-orphan" inverse="true" name="Names">
      <key foreign-key="Party_PartyName_FK">
        <column name="PartyNameId" />    ** WRONG, what I had
        <column name="PartyId" />        ** RIGHT, what I umm, meant
      </key>
      <one-to-many class="Parties.Domain.Names.PartyName, Parties.Domain" />
    </set>

**错了,我有什么
**对,我的意思是

如果没有名称种子和范围的代码,很难回答。@Diego Mijelshon。你好,迭戈,请参阅更新的帖子。我还添加了代码来维护双向关系——我知道这是一个关于SO问题的代码。干杯
   <class name="Party" table="Parties">
    <id name="Id">
      <column name="PartyId" />
      <generator class="hilo" />
    </id>

    <discriminator column="Type" not-null="true" type="string" />

    <set access="field.camelcase-underscore" cascade="all-delete-orphan" inverse="true" name="Names">
      <key foreign-key="Party_PartyName_FK">
        <column name="PartyNameId" />
      </key>
      <one-to-many class="Parties.Domain.Names.PartyName, Parties.Domain" />
    </set>

    <subclass 
      name="Parties.Domain.People.Person, Parties.Domain" 
      discriminator-value="PERSON"
      >

    </subclass>
<class name="PartyName" table="PartyNames">
<id name="Id">
  <column name="PartyNameId" />
  <generator class="hilo" />
</id>

<natural-id>
  <many-to-one access="field.camelcase-underscore" class="Parties.Domain.Party" foreign-key="Party_FK" name="Party" cascade="save-update">
    <column name="PartyId" index="PartyIndex" not-null="true" />
  </many-to-one>
  <property name="RequiredName" not-null="true" length="50"/>
</natural-id>

<property name="EverythingElse" />
<property name="ContextUsed" length="50"/>
<property name="Salutation" length="20"/>
<property name="EffectivePeriod" type="Smack.Core.Data.NHibernate.UserTypes.DateRangeUserType, Smack.Core.Data">
  <column name="EffectiveStart"/>
  <column name="EffectiveEnd"/>
</property>
        <set access="field.camelcase-underscore" cascade="all-delete-orphan" inverse="true" name="Names">
      <key foreign-key="Party_PartyName_FK">
        <column name="PartyNameId" />    ** WRONG, what I had
        <column name="PartyId" />        ** RIGHT, what I umm, meant
      </key>
      <one-to-many class="Parties.Domain.Names.PartyName, Parties.Domain" />
    </set>