2011-10-07 55 views
0

今天早些時候,我把我的一個類分成了兩個類,將原始標記爲抽象類,並創建了兩個從抽象基類繼承的子類。在Fluent NHibernate中查找重複映射的源碼

我添加了一行到我FluentNHibernate映射區分基於列的值(表每類層次結構)類的子類,如下所示:

DiscriminateSubClassesOnColumn("EntryType"); 

即字段是數據庫中的一個整數。

我的新映射從

SubClassMap<MyChildType> 

繼承隨着MyChildTypeMap的構造方法鑑別一個新的行,如下所示:

DiscriminatorValue(1); 

我一直運行到這個異常:

"Duplicate class/entity mapping MyNamespace.MyChildObject" 

在Fluent NHibernate會話生成器中,(Fluently.Configure().. ..)我添加了行來將映射導出到HBM文件。果然,子類在父類的映射文件中列出了兩次。

我沒有使用AutoMapped配置。 我正在使用流利NHibernate的1.2.0.0 我使用NHibernate 3.2.0.400

我在機智的最終試圖找出它來自哪裏。誰能幫忙?

+0

你有沒有想過這個根本原因?我對SO有類似的問題。 – Astaar

回答

2

一個快速的方法,看看你的映射是如何構造的是使用FluentNHibernate的診斷:

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

這將流(到控制檯在這種情況下,你也可以​​)什麼映射是一個調試日誌從什麼類創建,什麼導致它們被添加或跳過。

+0

啊,我不知道那個!謝謝! – reallyJim

相關問題