2010-11-26 10 views
0

次の問題のマッピングを作成しようとしています。 ケースは複数のクライアントを持つことができ、クライアントは複数のケースにアタッチすることができます。Many To Manyコレクションで余分な情報を保存する

私はこれらのマッピングを持っています。クライアントのboolenがケースに関連していることにあると ケース

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で構成されて私が欲しいものは、テーブル内の別の列です。私はどのように私はプロパティを書くことができるように、列を追加することができますか?

+2

この質問は、今年初めに頼まれた:http://stackoverflow.com/questions/2281648/how-to-add-extra-field-in-the-manytomany-generated-table-with-fluentnhibernate – Marijn

+0

とそれ以前にもよくあることです:http://stackoverflow.com/questions/889513/nhibernate-many-to-many-mapping-additional-column-in-the-mapping-table http://stackoverflow.com/questions/166426/追加フィールド内のハイバネーション - 多対多関係テーブルhttp://stackoverflow.com/questions/472052/many-to-many-mapping-with-extra-columns-in-join-table –

答えて

5

多対多マッピングを2つ使用して、多対多を使用しないでください。

ClientCase用の別のエンティティを作成します。これは、CaseとClientの両方を参照し、ブール値プロパティも持っています。ほとんど が 関連するインスタンス間のリンクに を添付しなければならない他の情報が常にあるので、我々は、多対多 団体の使用を避ける

」;:NHibernate In Actionから

、ページ193 への最善の方法は、 中間アソシエーションクラスによるものです。