Заполнение объектов с помощью NHibernate в нескольких базах данных - PullRequest
4 голосов
/ 04 января 2011

У меня есть один SQL Server с несколькими базами данных.У Database1 есть таблица со ссылкой на идентификаторы, которые хранятся в таблице на Database2.Не уверен, что это возможно, но могу ли я настроить NHibernate (в частности, Fluent NHibernate) для насыщения объекта, извлекающего данные из нескольких баз данных?

Я не беспокоюсь о записи в эти таблицы, я просто пытаюсь ORMобъекты для отображения в приложении просмотра данных.

Я понимаю, что это не идеальная ситуация с базой данных, но это то, с чем мне было поручено работать.

1 Ответ

9 голосов
/ 04 января 2011

Обычный ответ на специфичные для БД структуры запросов, такие как запросы между БД, заключается в создании представления «локальной» БД (к которой подключается NH), которое будет выполнять запрос к БД и возвращать объединенные результаты. Вы также можете иметь репозиторий для каждой БД и разработать некоторые средства для запроса записей из каждой БД и присоединения к ним вручную.

Одна вещь, которая также будет работать; свойство таблицы каждого отображения - просто строка и может быть чем угодно; NHibernate просто берет это и подключает его везде, где нужно ссылаться на имя таблицы. Таким образом, вы можете попытаться указать таблицы в сопоставлениях, используя их полностью определенные имена: ConnectedDB..LocalTable, OtherDB..RemoteTable. Это может считаться хаком, но это также довольно элегантно; вашей программе даже не нужно знать, что в схеме постоянства есть несколько баз данных.

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