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

发布于 2024-12-20 07:12:11 字数 597 浏览 0 评论 0原文

我找到了几篇如何将 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/

谢谢, 亚历山大.

I found a couple of articles how to use NHibernate with multiple database, for example this one
http://codebetter.com/karlseguin/2009/03/30/using-nhibernate-with-multiple-databases/

But all articles are very old, and may be there is some new approach with NH 3.x? I looked in documentation but did not found anything, but maybe i missed somthing?

Does anybody knows some better way (native NH3.x way) to use NH 3.x with multiple database than described in this article?
http://codebetter.com/karlseguin/2009/03/30/using-nhibernate-with-multiple-databases/

Thanks,
Alexander.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨小沫ゞ 2024-12-27 07:12:11

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

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

AFAIK, there is nothing new in NH 3. But there are still more options to use several databases than in the blog post you linked.

  • You can open your own connection and pass it to NH when opening a session.
  • You can open a session and switch to another database on the same server (eg. by executing a use database statement on sql server).
  • You can provide a schema (database) name on each table you map in the mapping file. It is not useful to have it hard coded, but you can still replace it after loading the mapping files or use mapping by code.
一向肩并 2024-12-27 07:12:11

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

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

The articles you linked are still the way to go. Each SessionFactory is responsible for a single connection (connectionstring) and schema.

There is one special case where ou split the database into multiple with the same schema to load balance. This is called sharding and there is the contrib NHibernate.Shards to deal with it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文