Сопоставление FluentNHibernate ManyToOnePart: PropertyAccessException Invalid Cast - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в NHibernate, и мне нужна ваша помощь.

По сути, я взял коллекцию с именем Patient , сопоставленную с сущностью пациента , и разделил ее в две коллекции на разных базах данных / сервере, S1.DB1.Patient , сопоставленный с OtherDataPatient entity , и S2.DB1.Patient , сопоставленный с ConfidentialDataPatient entity

My Patient entity также является моделью для моего приложения. Я не хочу трогать его, чтобы не повлиять на пользовательский интерфейс. Он наследуется от интерфейса IOtherDataPatient и интерфейса IConfidentialDataPatient . Сущность / модель заболевания ( S1.DB1.Disease ) имеет ссылку на пациента, а Пациент имеет множественную ссылку на болезнь.

Пациент 1 -> Заболевание N

Итак, когда я загружаю свою коллекцию болезней, на самом деле NHibernate должен загружать пациента из S1.DB1. Пациент , но тип не совпадает, и я получаю NHibernate.PropertyAccessException : Invalid Cast (check your mapping for property type mismatches)

Как я могу заставить NHibernate использовать его? Я реализовал неявный оператор приведения, попробуйте принудительно включить его в сопоставление с помощью .Class<OtherDataPatient>() или явного приведения

Приятно иметь:

И как я могу обработать ConfidentialPatientData получение данных на другой сервер во время загрузки данных OtherPatientData ? Можно ли предоставить какой-нибудь собственный код для выполнения в NHibernate?

...