在继承映射类中重新映射属性

时间:2012-04-13 13:28:52

标签: c# fluent-nhibernate

我有一个基本地图类(在自己的程序集中),其中Segment属性声明为 LazyLoad

public class GroupMap : ClassMap<Group>
{
    public GroupMap()
    {
        ....

        Map(x => x.Segment)
            .LazyLoad();
    }
}

在我的应用程序中,我希望此属性不是LazyLoad。我试过这样的方法:

public class MyGroupMap : GroupMap
{
    public MyGroupMap() : base()
    {
        Map(x => x.Segment)
            .Not.LazyLoad();
    }
}

将此类添加到Mappings。但它只生成一个运行时异常(Property Segment已经映射过了。显而易见)。有什么建议?我认为Properties属性可能有所帮助,但它已被弃用。

1 个答案:

答案 0 :(得分:0)

我在流利的nhibernate google-group中得到答案。 主要思想是创建一个映射了主要属性的基本映射类(GroupMapBase)。也是具有lazyload属性的GroupMap类。 并且MyGroupMap类基于GroupMapBase,其中需要的属性Mapped而不进行延迟加载。

它解决了我的问题。