2012-05-02 10 views
0

私を助けてください。マップmany-to-manyはFluentNhibernateでプライマリIDを使用しません

私は3つのエンティティを持っています。

  1. BPayReferenceID GeneratedBy.Assigned()ファミリー(GENERIC_ID、...)
  2. BPayReference(BPayReferenceID、GENERIC_ID)
  3. 請求書BPayReferenceに(ID、...、BPayReferenceID)BPayReferenceID外部キー。 BPayReferenceID

このシナリオでは多対多をどのようにマッピングできますか?

BPayReferenceIDInvoiceエンティティ

答えて

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

ノートの主キーではないので、私はFamilyMap

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

が、これは動作しませんでしてみてください:あなたはおそらくKeyColumnsプロパティ

+0

ありがとう!それは仕事だ – slgal

+0

それが正解なら@slgalそれではそれをマークしてください – Firo

0
を切り替えます

私のように - 非流出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でした。

関連する問題