2011-11-17 51 views
0

我在我的實體之一以下屬性:如何將字典與實體作爲鍵和類以相應的用戶類型作爲值進行映射?

IDictionary<SomeOtherEntity, IPcmStream> PropName { get; set; } 

SomeOtherEntity顯然是被映射到數據庫的另一個實體。
IPcmStream是存在實現IUserType的接口。該實現將該接口映射到byte[]列。它使用IUserTypeConvention激活了所有出現的IPcmStream
現在,我該如何使用Fluent NHibernate映射這個屬性?

我想它是這樣的:

mapping.HasMany(x => x.PropName).AsMap("SomeOtherEntity_id"); 

但是,這會導致異常,指出IPcmStream未映射類...

回答

1
mapping.HasMany(x => x.PropName) 
    .Table("Linktable") 
    .AsEntityMap("SomeOtherEntity_id") 
    .Element("PcmStream_id", e => e.Type<MyUserType>()); 

AsEntityMap告訴NH該字典的關鍵是一個映射的實體,你給它的實體的ID列。元素表示值爲簡單元素,自定義類型從列「PcmStream_id」轉換爲類型

+0

繁榮!有用。非常感謝。 :-)我永遠不會理解FNH中的字典映射...... –

+0

也許你可以解釋它爲什麼可行? –

相關問題