我有一個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