というエンティティ オブジェクトがあり、このエンティティには というタイプPatient
のプロパティがあります。Visits
VisitsCollection
VisitsCollections
の子クラスですIList<Visit>
が、コレクションにいくつかのカスタム ロジックも追加します (自動順序付け、検証、通知など)。
コレクションに追加されたエンティティにいくつかのデータを追加し、他のいくつかの事務処理を透過的に実行するため、カスタム コレクション タイプを使用する必要があります。
今、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
VisitsCollection
コレクションクラスはフレームワークの一部であるため、NHibernate 型から継承したくありません(データベースだけでなく、多くのシナリオで使用されるため)。
これをマップしてコードの構造を維持する方法についてのアイデアはありますか?
前もって感謝します。