1

我发现了几篇文章如何将 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/

谢谢,亚历山大。

4

2 回答 2

3

AFAIK,在 NH 3 中没有什么新东西。但是与您链接的博客文章相比,使用多个数据库的选项仍然更多。

  • 您可以打开自己的连接并在打开会话时将其传递给 NH。
  • 您可以打开会话并切换到同一服务器上的另一个数据库(例如,通过use database在 sql server 上执行语句)。
  • 您可以在映射文件中映射的每个表上提供模式(数据库)名称。硬编码没有用,但您仍然可以在加载映射文件后替换它或使用代码映射。
于 2011-12-12T09:09:35.707 回答
0

您链接的文章仍然是要走的路。每个 SessionFactory 负责单个连接(连接字符串)和模式。

有一种特殊情况,您将数据库拆分为具有相同架构的多个数据库以进行负载平衡。这称为分片,并且有 contrib NHibernate.Shards来处理它。

于 2011-12-12T08:58:14.163 回答