我很困惑。

我使用这个开源片段。我有一个表,而在SQL Server中的任何触发器和尚的SqlCacheDependency工作正常。我想你需要在表上的触发器,它的工作?

                DateTime localFileTimeStamp = DateTime.Now; 
                DateTime fileTimeStampInDB;
                string cacheKey = string.Format("ImageId_{0}", 1);
                object o = Utils.Cache.Get(cacheKey);
                if (null == o)
                {
                    // get timestamp from DB
                    SqlCacheDependency dep;
                    fileTimeStampInDB = DataLayer.GetTimeStamp(1, out dep);
                    Utils.Cache.Insert(cacheKey, fileTimeStampInDB, dep, Cache.NoAbsoluteExpiration,
                        Cache.NoSlidingExpiration);
                    //, CacheItemPriority.Normal);
                    //new CacheItemRemovedCallback(WebUtils.CacheItemRemovedCallback));
                }

我每次timeupdated字段设置为GETDATE(),我的代码检测该对象o是空再次,这是它应该的,因为它应该从缓存中它已经过时一次之后下降,但为什么它的工作?我刚开始继的SqlCacheDependency教程,所以也许我错过了什么,而阅读。

编辑:他们使用

SqlCacheDependency dependency = new SqlCacheDependency(command);

和我想这并不需要触发器。

请,如果你不喜欢这种做法,更喜欢一些其他的方式随时分享。

有帮助吗?

解决方案

没有,你不需要触发器这样。这是对查询通知全部完成。通过该条具有读,它解释了3种方式查询通知可以使用ADO.NET进行设置。

这是这些查询通知,该通知改变底层结果集。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top