我正在使用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
中定义的字段答案 0 :(得分:0)
在ModelInspector中,您必须为方法IModelInspector.IsTablePerClassHierarchy返回true。这将使所有类存储在同一个表中。