我有一个基本的MVC应用程序,它使用NHibernate进行OR/M和数据访问,将SysCache2用于NHibernate中的二级缓存,将SqlCacheDependency用于底层缓存无效逻辑。我相信我已经正确设置了所有内容(如果需要,我可以添加详细信息),并且我可以看到项目在应用程序端被缓存。
但是,如果我直接更新数据库表中的项,则不会通过SqlCacheDependency和NHibernate中的SysCache2将更新发送回应用程序。因此,数据库中的数据正在更新,并且不同于应用程序中缓存中的数据(在使用SysCache2的NHibernate中)。
我可以在AspNet_SqlCacheTablesForChangeNotification表中看到与正确域表相关的changeId列的值递增,因此我相当确定SQL Service Broker已正确设置和配置。如果我使用SQL Profiler分析数据库,我可以看到队列、服务和存储过程的设置调用,以及用于监视的BEGIN CONVERSATION调用。
不太确定下一步要检查什么。以前有没有人遇到过这个问题?解决方案是什么?
发布于 2011-10-04 09:51:50
结果发现主要问题是我使用的sql驱动程序不支持批处理。一旦我将它切换回默认的nhibernate SQL2008驱动程序,一切都很顺利。
https://stackoverflow.com/questions/7342531
复制相似问题