使用NHibernate 3.x的多个数据库

时间:2011-12-10 03:11:28

标签: nhibernate fluent-nhibernate nhibernate-3

我发现了一些文章如何将NHibernate与多个数据库一起使用,例如这个 http://codebetter.com/karlseguin/2009/03/30/using-nhibernate-with-multiple-databases/

但所有文章都很陈旧,NH III可能有一些新的方法吗?我看了文档,但没有找到任何东西,但也许我错过了什么?

有没有人知道更好的方式(本机NH3.x方式)使用NH 3.x与多个数据库比本文所述? http://codebetter.com/karlseguin/2009/03/30/using-nhibernate-with-multiple-databases/

谢谢, 亚历山大。

2 个答案:

答案 0 :(得分:3)

AFAIK,NH 3没有什么新内容。但是,与您链接的博客文章相比,使用多个数据库还有更多选择。

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

答案 1 :(得分:0)

您链接的文章仍然是可行的方法。每个SessionFactory负责单个连接(connectionstring)和架构。

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