2010-11-26 64 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页:

“我们避免使用许多一对多 关联的,因为那里几乎 那一定是 连接到 相关的实例之间的联系一直等信息; 代表此信息的最佳方式是通过 中间关联类。“