2011-12-17 90 views
0

目前有一種方法可以在Fluent NHibernate中使用相當於index-many-to-many的NHibernate標籤嗎?Fluent NHibernate index-many-to-many

幾乎完全使用AsMap上的HasManyToMany,除了這一個元件指定在地圖中的索引生成我試圖實現的映射:

生成是: <index type=...

本來應該: <index-many-to-many class=...

編輯: 目前我使用的解決方法是產生PA最後不正確的映射,手動編輯映射文件,註釋掉映射代碼,然後手動添加更正的映射文件來代替Fluent NHibernate從註釋掉的映射代碼中生成它。因爲任何時候映射的變化都是不理想的,我需要再次通過這個過程,但是一旦我的映射不會改變,這不會是一個問題。

回答

0

我通過使用AsTernaryAssociation除了AsMap解決了這個問題。

總之,映射一個IDictionary<KeyEntity,ValueEntity>我有映射:

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

注意,包括類型參數導致這種出於某種原因無法正常工作(即下面將拋出一個FluentNHibernate.Cfg.FluentConfigurationException

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

我想知道爲什麼鍵入的版本不工作,如果有人知道?

+0

`.AsMap(「KeyColumn」)`應該是這裏的noop/unnesses,因爲AsMap和TernaryAssociation是互斥的。也許這就是爲什麼當類型已經通過AsMap聲明並且試圖添加AsTernary時拋出的原因 – Firo 2012-03-29 18:25:47