首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nhibernate碎片生产准备好了吗?

问Nhibernate碎片生产准备好了吗?
EN

Stack Overflow用户
提问于 2010-06-22 18:28:05
回答 2查看 1.1K关注 0票数 3

在我工作的公司,我们有一个单一的数据库模式,但是每个客户端都使用自己的专用数据库,有一个存储客户端联系人详细信息的中央数据库,以及客户端使用的数据库,这样我们就可以连接到适当的数据库。我看过使用NHibernate碎片,但它似乎变得非常安静,看上去不完整。

有人知道这个项目的状况吗?有人在生产中用过吗?

如果它还没有被认为可以在生产中使用,那么还有什么可供选择的?这两个主要的问题似乎是:

  1. 为每个数据库创建一个会话工厂,然后使用一个包装器来选择适当的工厂来生成正确的会话--在我看来,这似乎是多余的会话工厂,而且效率不太高。
  2. 只创建一个会话工厂,但是当调用opensession时,传递给它一个IDbConnection --这将允许会话具有不同的数据库连接。

我对2的关注是,NHibernate将如何处理第2级缓存,因为我认为它是由会话工厂控制的--而且HiLo生成器也使用我认为的会话工厂。在这种情况下,将会话附加到不同的dbs会导致问题吗?例如,我们将在两个数据库中得到一个id为2的MyCompany.Model.User类,这会导致缓存中的冲突吗?

EN

回答 2

Stack Overflow用户

发布于 2011-02-16 10:28:34

您可以查看Server的切分库Enzo SQL Shard。但是,如果您已经在使用NHibernate,那么代码中可能需要进行一些更改

票数 0
EN

Stack Overflow用户

发布于 2018-09-21 21:07:19

NHibernate碎片是最新的NHibernate API更改的最新版本,现在支持NHibrrnate的所有查询模型,包括Linq。目前不支持复杂的标量查询。

我们在生产中将它用于多租户环境,但是有一些事情需要注意。

NHibernate碎片对于每个碎片都有一个会话工厂,但是只使用一个NHibernate配置实例来生成会话工厂。这种方法可能不会很好地扩展到大量的碎片。

查询碎片并不能很好地处理分页。它可以工作,但可能需要大量的客户端处理。最好保持结果集尽可能小,并在可行的情况下将查询锁定到单个碎片。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3095993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档