2011-12-17 13 views
0

Fluent NHibernateでNHibernateタグindex-many-to-manyと同等のものを使用する方法は現在ありますか?流暢なNHibernateインデックス - 多対多

私が達成しようとしていますマッピングがほぼ完全マップでインデックスを指定する。この一つの要素とは別に、HasManyToManyAsMapを使用して生成された:

生成されました: <index type=...

がされている必要があります: <index-many-to-many class=...

EDIT: 現在、私が使用している回避策は、PAを生成することです手動でマッピングファイルを編集し、マッピングコードをコメントアウトして、Fluent NHibernateの代わりに修正されたマッピングファイルを手動で追加して、コメントアウトされたマッピングコードからそれを生成する。マッピングが変わるたびにこのプロセスをやり直す必要があるので理想的ではありませんが、マッピングが変更されなければ、それほど問題になることはありません。

答えて

0

AsMapに加えてAsTernaryAssociationを使用してこれを解決しました。型パラメータを含むことは何らかの理由で動作しないように、これを原因

HasManyToMany(x => x.TheDictionary) 
    .AsMap("KeyColumn") 
    .AsTernaryAssociation("KeyColumn", "ValueColumn"); 

HasManyToMany<ValueEntity>(x => x.TheDictionary) 
    .AsMap<KeyEntity>("KeyColumn") 
    .AsTernaryAssociation("KeyColumn", "ValueColumn"); 
(すなわち以下 FluentNHibernate.Cfg.FluentConfigurationExceptionがスローされます):

要約すると、IDictionary<KeyEntity,ValueEntity>は私がマッピングを持っているマップします

誰かが知っていると、なぜ型付きのバージョンが動作しないのか知りたいですか?

+0

'.AsMap(" KeyColumn ")'は、AsMapとTernaryAssociationが相互排他的であるため、ここではnoop/unnessesaryでなければなりません。たぶんAsMapで既に型が宣言されてからAsTernaryで追加しようとすると、それが投げられる理由があります – Firo

関連する問題