Отображение отношений из нескольких баз данных в NHibernate - PullRequest
0 голосов
/ 28 декабря 2010

У меня есть приложение с несколькими базами данных, настроенное с помощью NHibernate.Объекты, которые соответствуют таблицам из каждой базы данных, находятся в своих отдельных сборках (сборка для каждой базы данных, если хотите).У меня есть потребность / желание связать сущность из одной базы данных с сущностью другой базы данных.Все до этого момента работает так, как я хочу (приложение обрабатывает несколько фабрик сессий и т. Д.).

Отношения, которые я хочу, много-к-одному, но на самом деле мое приложение заботится только об одной сторонеотношений (по причинам, которые не имеют отношения).Соответствующими объектами являются Project и PMProject, где у проекта есть PMProject.Когда я сопоставляю «многие-к-одному», я получаю следующую ошибку:

NHibernate.MappingException: An association from the table PROJECTS refers to an unmapped class: SDMS.PPRM.PMProject

Само сопоставление проекта читает (игнорирует именование колонок в стиле фанк; это дБ Oracle):

<many-to-one name="PMProject" class="SDMS.PPRM.PMProject" column="PM_PROJECT_ID" cascade="none" />

В атрибуте class я ссылаюсь на соответствующую сборку, но я получаю ту ошибку, которая, кажется, говорит мне, что он просто не может найти файл отображения для PMProject.Но этот файл существует (он установлен как встроенный ресурс), создание фабрики сеансов работает без сбоев;так что я в растерянности о том, как указать сопоставление проекта, как / где искать соответствующее сопоставление.Я что-то упускаю?Лучший способ сделать это?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 января 2011

В итоге мне пришлось обойти мой «идеальный» сценарий и избежать прямых объектных отношений между сущностями разных баз данных. Для этого приложения это нормально, для будущих приложений с тем же требованием я хотел бы найти подходящее решение.

0 голосов
/ 29 декабря 2010

Ошибка дает понять, что сопоставление для PMProject не было загружено.

Если сопоставления находятся в другой сборке, необходимо добавить эту сборку в конфигурацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...