我有一个StoreHours类,它有一个组合键,并且一直在完美工作。另一种需要返回的小时数出现了新的需求。我认为“简单,我会抽象基类,有两个具体实现,并将应用程序中的我的引用更改为新类之一”。然而,在这样做,我的单元测试失败,NHibernate的子类和组合键
X.Test.StoreTest.HoursTest:NHibernate.InstantiationException:不能实例化抽象类或接口:X.Model.StoreHours
我的映射文件貌似
<class name="StoreHours" table="StoreHour" abstract="true" discriminator-value="0" >
<composite-id>
<key-many-to-one name="Store"
class="Store"
column="StoreUid"/>
<key-property name="DayOfWeek"
column="DayOfWeekId"
type="System.DayOfWeek" />
</composite-id>
<discriminator column="StoreHourType" type="Byte" />
<property name="OpenMinutes" column="OpenTime" />
<property name="CloseMinutes" column="CloseTime" />
<subclass name="OfficeHours" discriminator-value="1" />
<subclass name="AccessHours" discriminator-value="2" />
</class>
我发现有人有类似的烦恼here,并开始了他们的解决途径,但实际上结束了更多的麻烦,比我开始。
我能坚持记录到数据库中完美,但onload事件,NHibernate的尝试实例化抽象的“StoreHours”即使我只得到了一个强类型掀起“OfficeHours”
这似乎是一个真正的微不足道的要求,所以我想我必须做一些简单的错误。所有提示都表示赞赏。
迷人。希望这会帮助某人。不幸的是,这对我来说已经过了4.5年太迟了:)已经将此标记为没有尝试的正确答案。就我而言,我的回答完全是错误的。 – toxaq 2014-05-28 10:45:39
哈哈耶,我回答了未来的读者:-) – 2014-05-28 10:47:55