我有一個名爲Patient
的實體對象,此實體具有Visits
類型的屬性,其類型爲VisitsCollection
。NHibernate自定義集合類型
VisitsCollections
是IList<Visit>
的子類,但它也爲集合添加了一些自定義邏輯(如自動排序,一些驗證,通知等)。
I 需要使用自定義集合類型,因爲它向添加到集合中的實體添加了一些數據並透明地執行了其他一些文書工作。
現在我要地圖,在NHibernate的,所以我創建:
<list name="Visits" lazy="true" fetch="select">
<key foreign-key="PatientId" />
<index column="Timestamp" />
<one-to-many class="Visit" not-found="ignore"/>
</list>
我得到一個異常:
無法轉換類型NHibernate.Collection的」對象。 PersistentList'鍵入'... VisitsCollection'
每當我訪問訪問屬性。
我也試過這種方式映射它:
<list name="Visits" lazy="true" fetch="select" collection-type="VisitsCollection">
<key foreign-key="PatientId" />
<index column="Timestamp" />
<one-to-many class="Visit" not-found="ignore"/>
</list>
但儘管如此,我得到這個異常:
自定義類型不落實UserCollectionType:..... VisitsCollection
我不想從任何NHibernate類型繼承我的VisitsCollection
,因爲集合類是我希望它成爲框架的一部分DAL-agnos tic(因爲它將在許多場景中使用 - 不僅與數據庫一起使用)。
關於如何映射這個,保存我的代碼結構的任何想法?
在此先感謝。