Я пытаюсь получить данные из двух существующих моделей данных в единую общую модель с использованием NHibernate 2.0.В настоящее время я пытаюсь создать сопоставления для одной из двух существующих баз данных.
Может быть несколько встреч, когда у пациента есть одно устройство.Я пытаюсь извлечь данные для каждой встречи.Я хочу получить атрибуты из каждой из четырех дочерних таблиц, основанные на одной комбинации столкновения и устройства.Сейчас я пытаюсь написать сопоставления, чтобы получить свои атрибуты из четырех дочерних таблиц.(Я написал хранимый процесс, который получает все атрибуты и принимает @deviceID и @encounterID в качестве параметров, думая, что это может быть проще, но мне не ясно, как заставить это работать.)
Iсоздал класс ProgrammingContainer для получения всех этих данных, поэтому я могу вывести его в таблицу ProgrammingEncounter в новой модели.Вот вопрос: как установить сопоставления, чтобы я мог получить содержимое в объекте ProgrammingContainer, который получает данные из дочерних таблиц на основе составных ключей?Является ли мой хранимый метод подход тупым в этом случае?Кажется, я не могу найти пример, который будет работать на основе моей ситуации с составным ключом.
Вот мои текущие файлы сопоставления.Сначала это объект Encounter.
<property name="EncounterDate" column="event_date" type="datetime" />
<property name="EncounterStatus" column="event_status" type="AnsiString" />
<property name="PatientID" column="patient_id" type="int" />
<many-to-one name="programmingContainer" class="ProgrammingContainer" column="event_id" lazy="false" fetch="join" access="field"/>
ProgrammingContainer:
<class name="ProgrammingContainer" table="event" where="" dynamic-update="true" dynamic-insert="true">
<composite-id>
<key-property name="EncounterID" column="event_id" type="Int32"/>
<key-property name="PatientID" column="patient_id" type="Int32"/>
</composite-id>
<bag name="devices" cascade="all" access="field">
<key column="patient_id"/>
<one-to-many class="Device"/>
</bag >
<property name="DeviceID" column="defibrillator_id" type="Int32" />
<many-to-one name="icdProgrammingData" class="IcdProgrammingData" column="patient_id" lazy="false" access="field"/>
IcdProgrammingData (дочерний объект, которыйвызывает сохраненный процесс)
<hibernate-mapping>
<property name="BatteryChargeSeconds" column="charge_time" type="AnsiString" />
<property name="AutoCapFrequency" column="autocap_frequency" type="AnsiString" />
<property name="LastCapacitorFormDate" column="last_capacitor_form" type="DateTime" />
(я не уверен, как получитьотображения sql-запроса для отображения)