Несколько баз данных с NHibernate 3.x - PullRequest
1 голос
/ 10 декабря 2011

Я нашел пару статей о том, как использовать NHibernate с несколькими базами данных, например, эту http://codebetter.com/karlseguin/2009/03/30/using-nhibernate-with-multiple-databases/

Но все статьи очень старые, и может быть есть какой-то новый подход с NH 3.x? Я посмотрел в документации, но ничего не нашел, но может я что-то пропустил?

Кто-нибудь знает какой-то лучший способ (нативный способ NH3.x) использовать NH 3.x с несколькими базами данных, чем описано в этой статье? http://codebetter.com/karlseguin/2009/03/30/using-nhibernate-with-multiple-databases/

Спасибо, Александр.

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

AFAIK, в NH 3 нет ничего нового, но есть еще больше возможностей использовать несколько баз данных, чем в сообщении в блоге, на которое вы ссылались.

  • Вы можете открыть собственное соединение и передать его NH при открытии сессии.
  • Вы можете открыть сеанс и переключиться на другую базу данных на том же сервере (например, выполнив инструкцию use database на сервере sql).
  • Вы можете указать имя схемы (базы данных) для каждой таблицы, которую вы отображаете, в файле отображения. Бесполезно жестко кодировать его, но вы все равно можете заменить его после загрузки файлов сопоставления или использовать сопоставление по коду.
0 голосов
/ 12 декабря 2011

Статьи, на которые вы ссылаетесь, все еще в пути.Каждый SessionFactory отвечает за одно соединение (connectionstring) и схему.

Существует один особый случай, когда вы разделяете базу данных на несколько с одной и той же схемой для балансировки нагрузки.Это называется шардингом, и для его решения есть вклад NHibernate.Shards .

...