【问题标题】:Finding source of duplicate mappings in Fluent NHibernate在 Fluent NHibernate 中查找重复映射的来源
【发布时间】:2011-12-03 05:32:44
【问题描述】:

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

我在 FluentNHibernate 映射中添加了一行,以根据列值(每类表的层次结构)区分子类,如下所示:

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

我束手无策,试图弄清楚这是从哪里来的。有人可以帮忙吗?

【问题讨论】:

  • 你有没有弄清楚这个问题的根本原因?我对 SO 有类似的问题。

标签: nhibernate orm fluent-nhibernate mapping


【解决方案1】:

查看映射是如何构建的一种快速方法是使用 FluentNHibernate 的诊断:

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

这将流式传输(在这种情况下,您也可以OutputToFile 发送到您的控制台)一个调试日志,其中包含从哪些类创建了哪些映射以及导致它们被添加或跳过的原因。

【讨论】:

  • 啊,我不知道那个!谢谢!
猜你喜欢
  • 2013-09-01
  • 2013-01-07
  • 2013-04-04
  • 2011-04-10
  • 2011-03-25
  • 2014-08-25
  • 1970-01-01
  • 2012-02-08
  • 2011-06-18
相关资源
最近更新 更多