NHibernate 查询视图数据与数据库数据不一致

来源:互联网 发布:端口号80是什么意思 编辑:程序博客网 时间:2024/06/05 09:36

NHibernate 查询数据与数据库数据不一致

开发中遇到,当更改一条数据之后,查询到的视图列表数据没有更新,实际数据库中数据已经更改,视图中的数据也几经更改。
初步怀疑是 session 缓存的问题。
项目是winform应用程序,刚开始的时候使用的是和web应用中的配置相同。但是在web应用中没有遇到这种问题。
可能的原因:
session 的创建和销毁时和 线程绑定在一起的。
每次web请求,都会创建一个session绑定到当前线程。web请求结束之后session释放。
winform中,线程只创建一次,即项目启动时。
此时更改表数据之后,如果没有清空session缓存,那么查询的视图,实际上之后都是使用的session缓存的数据。
解决方案:
在更新表数据之后,调用

session.Clear()

0 0