我的一个实体中有以下属性:
IDictionary<SomeOtherEntity, IPcmStream> PropName { get; set; }
SomeOtherEntity
显然是映射到数据库的另一个实体
IPcmStream
是存在IUserType
实现的接口。此实现将接口映射到byte[]
列。它使用IPcmStream
激活所有IUserTypeConvention
次。{
现在,如何使用Fluent NHibernate映射此属性?
我试过这样:
mapping.HasMany(x => x.PropName).AsMap("SomeOtherEntity_id");
但是这导致了一个例外,表明IPcmStream
是一个未映射的类......
答案 0 :(得分:1)
mapping.HasMany(x => x.PropName)
.Table("Linktable")
.AsEntityMap("SomeOtherEntity_id")
.Element("PcmStream_id", e => e.Type<MyUserType>());
AsEntityMap告诉NH,字典的Key是一个映射实体,你给它提供了实体id的列。 Element表示值是简单元素,自定义类型从列“PcmStream_id”转换为类型