在Fluent NHibernate中查找重复映射的来源

时间:2011-10-07 18:27:26

标签: nhibernate orm fluent-nhibernate mapping

今天早些时候,我把我的一个类打成了两个,将原始标记为抽象,并创建了两个继承自抽象基类的子类。

我在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

我正试图弄清楚这是从哪里来的。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

快速查看映射的构造方法是使用FluentNHibernate的诊断程序:

Fluently.Configure()
    .Database(\\your db stuff here)
    .Diagnostics(diag => diag.Enable().OutputToConsole())
    .Mappings(\\mappings);

这将(在这种情况下,您还可以OutputToFile)流式传输一个调试日志,其中包含从哪些类创建的映射以及导致它们被添加或跳过的内容。