0

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

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

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

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

如何让我的 IUserType 实现来加载集合?
我正在使用 NH 3.3
提前致谢。

4

1 回答 1

1

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

HasMany(p => p.Adjustments)
    .Element("Adjustment", e => e.Type<AdjustmentCustomMap>())
    .Cascade.AllDeleteOrphan()
    .Inverse())
    ;

方法的第一个参数Element是列名。

于 2012-07-08T10:55:57.140 回答