這裏是域模型類:用類層次結構,其基類NHibernate的映射是抽象的,辨別是不是字符串
public abstract class BaseClass
{
...
}
public class ChildClass : BaseClass
{
...
}
注意,父類是抽象的,這是給我的一些困難什麼時候來流利nhibernate映射的時間。我的鑑別器是一個字節(DB中的tinyint)。因爲它不是一個字符串,我不能管理設置在基類中的鑑別值,這不起作用(取自測繪類BaseClass的):
DiscriminateSubClassesOnColumn<byte>("Type")
.SubClass<ChildClass>()
.IsIdentifiedBy((byte)OperationType.Plan)
.MapSubClassColumns(p => { ... })
該錯誤消息我得到的是:
類初始化方法UnitTest1.MyClassInitialize拋出異常。 NHibernate.MappingException:NHibernate.MappingException:無法格式鑑別值爲SQL實體的字符串BaseClass ---> System.FormatException:輸入字符串的格式不正確。
以下文章似乎解釋了會發生什麼。他們提供了一個解決方案與XML但不是流利的nhibernate:http://forum.hibernate.org/viewtopic.php?t=974225
感謝您的幫助。
感謝您使用XML鏈接到解決方案 - 正是我需要的! – 2011-07-07 15:02:37