首页 文章

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

提问于
浏览
0

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

我在我的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 回答

  • 2

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

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

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

相关问题