代码之家  ›  专栏  ›  技术社区  ›  Ryan Lanciaux

Fluent NHibernate/NHibernate继承问题

  •  0
  • Ryan Lanciaux  · 技术社区  · 15 年前

    可能是个愚蠢的问题,但我有许多实体都继承自一个基本实体。基实体在数据库中没有表。每个实体都有自己的表,表定义完全相同。下面是非常简单的代码示例。

    public abstract class BaseEntity
    {
        public virtual string someProperty {get; set;} 
    }
    
    public class Entity1 : BaseEntity{}
    
    public class Entity2 : BaseEntity{}
    
    public class CompletelyDifferentEntity
    {
        public virtual IList<BaseEntity> {get; set;}
    }
    

    我为实体创建了映射。在我的其他域类中,如果我引用具体的类,一切都可以正常工作,但是如果我将其他类改为引用baseEntity,我会得到一个映射异常,因为baseEntity没有映射。这是我应该使用子类鉴别器的地方吗?如果基没有关联的表,并且子类没有不同于表定义的特定列,我想我看不到正确的方法。

    1 回复  |  直到 15 年前
        1
  •  1
  •   maciejkow    15 年前

    您必须使用三种可用的继承映射策略之一。根据您的描述,您应该考虑使用每个具体类映射的表,或者更改您的DB方案。

    您可以在这里找到关于策略优缺点的更多信息: https://www.hibernate.org/hib_docs/nhibernate/html/inheritance.html .