我想弄清楚如何在Fluent 1.0 RTM中映射IDictionary屬性。用於映射IDictionary的流利代碼<SomeEntity,int>?
根據我的理解,這轉換爲三元關聯。
例如:然後
class Bar
{
public IDictionary<SomeEntity, int> Foo {get; set;}
}
Bar.hbm.xml將包含:
<map name="Foo" table="BarFooTable">
<key column="..."/>
<index-many-to-many class="SomeEntity" column="SomeEntity_Id"/>
<element column="Value" type="int"/>
</map>
我會在什麼連貫NHibernate產生這種映射XML寫?
這裏感興趣的一點是,鍵是一個實體類型,而值是一個值類型。 (編輯:至少,這似乎區別於各種其他的例子和問題浮動在計算器或谷歌組,這是價值或鍵 - 鍵)
經過大量的實驗後,我可以產生一個映射IDictionary<SomeEntity,SomeEntity>
(純實體類型):
HasManyToMany(x => x.Foo)
.AsMap("Key")
.AsTernaryAssociation("Key2", "Value")
;
我還可以產生用於IDictionary<int,int>
(純值類型)的映射:
HasMany(x => x.Foo)
.AsMap<int>("Key")
.Element("Value")
;
我甚至可以得到某種方式製造用於的映射,儘管NHibernate不會接受。
但我不知道如何產生IDictionary<SomeValue, int>
這是我想要的映射。有人可以提供一些提示嗎?
crossposted到http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/b1b335ff5f9a6a40 – fostandy 2009-09-05 16:18:38