.net 如何映射多对多don';t在FluentNhibernate上使用主ID

.net 如何映射多对多don';t在FluentNhibernate上使用主ID,.net,orm,fluent-nhibernate,.net,Orm,Fluent Nhibernate,请帮帮我 我有3个实体 族(通用标识,…) BPayReference(BPayReferenceID,GENERIC_ID),其中BPayReferenceID GeneratedBy.Assigned() 发票(ID,…,BPayReferenceID),其中BPayReferenceID是BPayReference.BPayReferenceID的外键 在这个场景中,我如何映射多对多 我在家庭地图中尝试 HasManyToMany(x => x.Invoices) .Tabl

请帮帮我

我有3个实体

  • 族(通用标识,…)
  • BPayReference(BPayReferenceID,GENERIC_ID),其中BPayReferenceID GeneratedBy.Assigned()
  • 发票(ID,…,BPayReferenceID),其中BPayReferenceID是BPayReference.BPayReferenceID的外键
  • 在这个场景中,我如何映射多对多

    我在家庭地图中尝试

    HasManyToMany(x => x.Invoices)
        .Table("bpay_reference")
        .ChildKeyColumn("GENERIC_ID")
        .ParentKeyColumn("BPayReferenceID");
    
    但这不起作用,因为
    BPayReferenceID
    不是
    发票
    实体中的主键

    HasManyToMany(x => x.Invoices)
        .Table("bpay_reference")
        .ParentKeyColumn("GENERIC_ID")
        .ChildKeyColumn("BPayReferenceID")
        .ChildPropertyRef("BPayReferenceID"); // must be mapped though
    

    注意:您可能切换了KeyColumns

    ,为了让像我这样的人在非流动的NHibernate中努力做同样的事情,请尝试以下操作:

    <bag name="Invoices" table="BPayReference" cascade="none" lazy="false">
      <key column="GENERIC_ID" />
      <many-to-many class="Invoice" column="BPayReferenceID" property-ref="BPayReferenceID" />
    </bag>
    
    
    
    我错过的最重要的一件事是property-ref