我需要用一些逻辑加载一个类(Adjustment),所以我在Nhibernate中实现了IUserType。当它是单个参考时,它可以正常工作:
Map(p => p.DefaultAdjustment)
.CustomType(typeof(AdjustmentCustomMap));
它的SqlType是字符串。
但是,我也有一个来自调整的集合,我不知道如何映射它!
HasMany(p => p.Adjustments)
.Cascade.AllDeleteOrphan()
.Inverse())
;
如何获取IUserType的实现来加载集合?
我使用的是NH 3.3
提前谢谢。
答案 0 :(得分:1)
尝试将.Element()
与HasMany
映射一起使用。由于您没有映射实体集合,而是映射简单对象的集合,因此您需要使用与映射string
,{{1}集合时相同的映射。 },int
...
Guid
HasMany(p => p.Adjustments)
.Element("Adjustment", e => e.Type<AdjustmentCustomMap>())
.Cascade.AllDeleteOrphan()
.Inverse())
;
方法的第一个参数是列名。