流畅的NHibernate / NHibernate继承问题

时间:2009-08-07 12:15:09

标签: nhibernate inheritance orm fluent-nhibernate mapping

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

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 个答案:

答案 0 :(得分:1)

您必须使用三种可用的继承映射策略之一。根据您的描述,您应该考虑使用table-per-concrete-class映射,或者更改db方案。

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