当前位置:  开发笔记 > 后端 > 正文

如何强制NHibernate识别未通过NHibernate进行的数据库更改

如何解决《如何强制NHibernate识别未通过NHibernate进行的数据库更改》经验,为你挑选了1个好方法。

我正在将NHibernate实现到现有的Web应用程序中.但是,我们还有一些其他进程可以在数据库上进行批量插入和更新.如何让NHibernate意识到后端数据库中发生的更改是通过NHibernate启动的?

我在asp.net中使用的NHibernate中读到的大部分信息都提到将Session对象存储在HttpContext或CallContext中.然后,这将在应用程序生命周期的持续时间内存储会话对象.这是我实施的.我担心在每个请求上初始化NHibernate的成本.在每个请求上初始化Session对象时,这种方法是否没有显着的性能损失?

另外,将SessionFactory存储在HttpContext或CallContext中是否更有意义,以便不必在每个请求上重新生成映射?



1> yfeldblum..:

你不应该.NHibernate会话可以帮助您在ACID环境中工作,这意味着一个事务不知道任何并发事务.您应该使用执行少量操作的短会话.你不应该长时间举行会议.如果确实需要很长的时间来处理域对象,那么您应该分离然后将域对象重新附加到不同的会话.

一旦打开一个新会话,在会话打开之前对数据库所做的任何更改都将通过NHibernate提供.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有