通过IUserType映射集合

时间:2012-07-08 10:24:46

标签: c# nhibernate fluent-nhibernate usertype iusertype

我需要用一些逻辑加载一个类(Adjustment),所以我在Nhibernate中实现了IUserType。当它是单个参考时,它可以正常工作:

    Map(p => p.DefaultAdjustment)
        .CustomType(typeof(AdjustmentCustomMap));

它的SqlType是字符串。
但是,我也有一个来自调整的集合,我不知道如何映射它!

        HasMany(p => p.Adjustments)
            .Cascade.AllDeleteOrphan()
            .Inverse())
            ;

如何获取IUserType的实现来加载集合?
我使用的是NH 3.3 提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试将.Element()HasMany映射一起使用。由于您没有映射实体集合,而是映射简单对象的集合,因此您需要使用与映射string,{{1}集合时相同的映射。 },int ...

Guid

HasMany(p => p.Adjustments) .Element("Adjustment", e => e.Type<AdjustmentCustomMap>()) .Cascade.AllDeleteOrphan() .Inverse()) ; 方法的第一个参数是列名。