使用NHibernate的Loquacious Mapping By Code进行多级继承

时间:2012-03-07 08:16:19

标签: nhibernate nhibernate-mapping multiple-inheritance mapping-by-code

我正在使用NHibernate基于约定的映射,我正在尝试研究如何映射多级继承结构

如果我有以下类结构

class ClassA

class ClassB : ClassA

class ClassC : ClassB

我希望所有三个类都代表一个表 - 数据库中的“ClassC”

在我的配置中,我将ClassA定义为RootEntity

(如此处所述:http://fabiomaulo.blogspot.co.nz/2011/04/nhibernate-32-mapping-by-code_13.html

public static void WithConventions(this ConventionModelMapper mapper, Configuration configuration)
{
    var baseEntityType = typeof(ClassA);
    mapper.IsRootEntity((type, declared) => baseEntityType.Equals(type.BaseType));

    ...
}

结果模式然后为ClassB和ClassC创建单独的表,两个表都包含在ClassA

中定义的字段

1 个答案:

答案 0 :(得分:0)

在ModelInspector中,您必须为方法IModelInspector.IsTablePerClassHierarchy返回true。这将使所有类存储在同一个表中。

相关问题