今天早些时候,我把我的一个类打成了两个,将原始标记为抽象,并创建了两个继承自抽象基类的子类。
我在FluentNHibernate映射中添加了一行,以根据列值(table-per-class heirarchy)区分子类,如下所示:
DiscriminateSubClassesOnColumn("EntryType");
该字段是数据库中的整数。
我的新映射继承自
SubClassMap<MyChildType>
使用MyChildTypeMap的构造函数方法中的新行作为鉴别符,如下所示:
DiscriminatorValue(1);
我一直遇到这个例外:
"Duplicate class/entity mapping MyNamespace.MyChildObject"
在Fluent NHibernate会话构建器中,(Fluently.Configure()....)我添加了一行来将映射导出到hbm文件。果然,子类在父类的映射文件中列出两次。
我没有使用AutoMapped配置。 我正在使用Fluent NHibernate 1.2.0.0 我正在使用NHibernate 3.2.0.400
我正试图弄清楚这是从哪里来的。有人可以帮忙吗?
答案 0 :(得分:2)
快速查看映射的构造方法是使用FluentNHibernate的诊断程序:
Fluently.Configure()
.Database(\\your db stuff here)
.Diagnostics(diag => diag.Enable().OutputToConsole())
.Mappings(\\mappings);
这将(在这种情况下,您还可以OutputToFile
)流式传输一个调试日志,其中包含从哪些类创建的映射以及导致它们被添加或跳过的内容。