首页 新闻 会员 周边

关于nhibernate缓存问题

0
悬赏园豆:100 [待解决问题]

     我在做winform开发的时候用到了nhibernate,当对数据库进行操作后,立刻查询却得不到最新的数据?

     比如对数据库一条数据删除后,我还会查到这条数据,过一阵子再查,就查不到该条数据,也就是说我查到的数据不是最新的,请问这是怎么回事?谁能帮我解决下,谢谢!

milk9906的主页 milk9906 | 初学一级 | 园豆:102
提问于:2012-07-12 20:32
< >
分享
所有回答(1)
0
悟行 | 园豆:12559 (专家六级) | 2012-07-12 20:36

能否具体点.

支持(0) 反对(0) milk9906 | 园豆:102 (初学一级) | 2012-07-12 20:56

@milk9906: 由于一级、二级缓存中都不存在需要的数据,这时NHibernate从数据库中查询数据。我们修改这条数据并提交到数据库中,NHibernate执行一条更新语句,由于我们设置了读写缓存策略,NHibernate更新了二级缓存中的数据内容,第二次读取这条数据,NHibernate首先从内置缓存(一级缓存)中查找是否存在所需要数据,由于不是在同一个ISession中,所以内置ISession缓存中不存在所需数据,NHibernate则查询二级缓存,这时由于第一次查询了这条数据,所以在二级缓存中存在所需数据,则直接使用缓存中数据。这时缓存中的数据也是更新的。

http://www.cnblogs.com/lyj/archive/2008/11/28/1343418.html

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-07-12 21:31

@荒野的呼唤: 哦,我大概明白你的意思了,那我该怎么处理这种问题啊,比如多个客户端同时操作一张表,其中某条数据被删除了,怎么保证其他的客户端查询的时候能立刻知道该条数据被删除了,而不是又可以从缓存中读出,本人初学还望大虾不要嫌偶菜,给指点一下啊,目前这个问题很棘手,希望先解决。

支持(0) 反对(0) milk9906 | 园豆:102 (初学一级) | 2012-07-12 22:11

@milk9906: 我给你的链接说得非常的清楚了。你仔细的看吧。一切都会明白的。

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-07-12 22:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册