2010-11-26 42 views
0

我正在嘗試爲以下問題構建映射。 一個案例可以有多個客戶端,一個客戶端可以連接到多個案例。使用多對多集合保存附加信息

我有這些映射: 案例

Map(x => x.CaseNumber); 
     References(x => x.Status).Cascade.All(); 
     HasManyToMany<Client>(x => x.Clients) 
     .Table("CaseToClient") 
     .Access.CamelCaseField(Prefix.Underscore) 
     .Cascade.SaveUpdate() 
     .LazyLoad(); 

現在我CaseToClient表由CASE_ID和CLIENT_ID的我想是在它與客戶的boolen是相關的情況下,在表中的另一列。我如何添加列以便我可以編寫該屬性?

+2

這個問題在今年早些時候問:http://stackoverflow.com/questions/2281648/how-to-add-extra-field-in-the-manytomany-generated-table-with-fluentnhibernate – Marijn 2010-11-26 15:34:24

回答

5

不要使用多對多,使用兩個一對多的映射。

爲ClientCase創建一個單獨的實體,ClientCase既引用了Case又引用了Client,並且還具有您的布爾屬性。

NHibernate In Action,第193頁:

「我們避免使用許多一對多 關聯的,因爲那裏幾乎 那一定是 連接到 相關的實例之間的聯繫一直等信息; 代表此信息的最佳方式是通過 中間關聯類。「