0

请帮帮我。

我有 3 个实体。

  1. 家庭(GENERIC_ID,...)
  2. BPayReference(BPayReferenceID,GENERIC_ID) 其中 BPayReferenceID GeneratedBy.Assigned()
  3. 发票 (ID, ..., BPayReferenceID) 其中 BPayReferenceID 外键为 BPayReference.BPayReferenceID

在这种情况下如何映射多对多?

我在FamilyMap中尝试

HasManyToMany(x => x.Invoices)
    .Table("bpay_reference")
    .ChildKeyColumn("GENERIC_ID")
    .ParentKeyColumn("BPayReferenceID");

但这不起作用,因为它不是实体BPayReferenceID中的主键Invoice

4

2 回答 2

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

注意:您可能切换了 KeyColumns

于 2012-05-03T06:46:20.070 回答
0

为了任何像我一样努力在 unFluent 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>

我错过的重要事情是属性参考。

于 2012-05-18T09:14:50.697 回答