首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为特定NHibernate会话注册事件侦听器

为特定NHibernate会话注册事件侦听器
EN

Stack Overflow用户
提问于 2015-09-21 22:34:58
回答 1查看 115关注 0票数 0

在我的asp.net mvc应用程序中,会话工厂是在应用程序级别缓存的。然后在每次请求时创建并关闭新会话。遗憾的是,在会话工厂的PostUpdate、PostInsert事件上订阅的日志记录服务需要当前用户id。因此它是在request作用域中创建的。因此,日志记录服务的多个实例可能同时存在,并侦听来自会话工厂/会话的事件(如果同时处理多个请求)。因此,一个用户的更改将在会话工厂上引发事件,该事件将由记录器服务的所有现有实例存储。

解决方案可以是订阅会话,而不是订阅会话工厂。这将把记录器服务的依赖范围缩小到单个请求的范围。

我的问题是:有没有办法为特定的nhibernate会话而不是整个会话工厂注册事件侦听器?

EN

回答 1

Stack Overflow用户

发布于 2015-09-22 16:09:24

找到了解决方案。ISession接口不公开EventListeners属性,但SessionImpl公开了。可以将会话对象强制转换为SessionImpl并分配所需的侦听器。

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

https://stackoverflow.com/questions/32697938

复制
相关文章

相似问题

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