NHibernate组件继承

时间:2010-06-30 12:04:59

标签: nhibernate nhibernate-mapping

是否可以使用NHibernates组件进行继承?一个快速谷歌只返回了一个充满适当结果的手(所有博客),所有这些都是前一段时间写的,所以想知道它是否可用?

如果不是你怎么处理呢?

3 个答案:

答案 0 :(得分:3)

目前无法实现。如果需要继承,则必须映射实体。

答案 1 :(得分:1)

除了Diego所说的,还有一个选项可以使用IUserType为层次结构实现自定义水合/脱水。有关详细信息,请参阅this article(其Java,但可以在C#中使用相同的机制)。

Hibernate功能请求为here。 NHibernate版本为here,请投票。

答案 2 :(得分:0)

public class A { }

public class B : A { }

public sealed class C : B { }

public abstract class BaseAMap<T> : ComponentMap<T> where T : A {
    public BaseAMap() {
        // Map A here
    }
}

public class AMap : BaseAMap<A>  {
}

public class BaseBMap<T> : BaseAMap<T> where T : B  {
    public BaseBMap () {
        // Map B (excluding A)
    }
}

public class BMap : BaseBMap<B>  {
}

public sealed class CMap : BaseBMap<B>  {
    public CMap () {
        // Map C (excluding B)
    }
}
相关问题