加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – NHibernate – 访问同一数据库的两个SessionFactorie

发布时间:2020-12-16 07:44:06 所属栏目:asp.Net 来源:网络整理
导读:这与 a previous question I asked相关,关于将asp.net mvc Web应用程序拆分为两个应用程序 – 一个是公共,一个是管理员.当然,它们都将共享相同的数据库. 有了两个Web应用程序,我将拥有两个主机应用程序,因此有两个独立的Nihbernate会话工厂.我担心的是,他们
这与 a previous question I asked相关,关于将asp.net mvc Web应用程序拆分为两个应用程序 – 一个是公共,一个是管理员.当然,它们都将共享相同的数据库.

有了两个Web应用程序,我将拥有两个主机应用程序,因此有两个独立的Nihbernate会话工厂.我担心的是,他们单独的数据缓存会引起各种各样的问题.

在发布这篇文章时,我查看了this question,其中包含了类似的问题(出于不同的原因).我真的不想为低使用率的管理应用程序设置某种分布式缓存.

怎么解决这个问题?是否将管理部分分为自己的应用程序,而不使用NHibernate而不采取严厉措施?

谢谢.

解决方法

我们成功地运行了这个,尽管数据中的一些差异总是一个问题.但是,由于每个站点可以配置第二级缓存,因此您可以禁用以及在管理器上的特定缓存区域将其关闭.

第二级缓存仅用于读取,因为显式更新将被刷新并直接保留.

如果您担心网站上的内容在修改后会“旧”,则需要某种触发器来指示网站驱逐缓存.如果我正确记住它,NHibernate将驱逐特定实体类型的所有二级缓存.

我认为如果您的网站与您的管理员将更新不同的实体,您的并发问题将是最小的.例如在网上商店:

Site will create orders,modify customers etc but only read products,prices and categories

Admin will modify orders,products,prices and categories but only read customers

但是,您可以指示NHibernate仅更新对象上的已修改字段/属性,以用于您关注映射上的dynamic-update =“true”并发问题的实体.这不能完全解决您的问题,但最大限度地减少并发问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读