У меня есть объект сущности с именем Patient
, а у этой сущности есть свойство с именем Visits
, которое имеет тип VisitsCollection
.
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
Я не хочу наследовать VisitsCollection
от какого-либо типа NHibernate, так как класс коллекции является частью структуры, и я хочу, чтобы он был независим от DAL (так как он будет использоваться во многих сценариях - не только с базы данных).
Есть идеи, как отобразить это, сохранив структуру моего кода?
Заранее спасибо.