SQL Server 2008中 - 的SqlCacheDependency不触发?
-
23-09-2019 - |
题
我很困惑。
我使用这个开源片段。我有一个表,而在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进行设置。
这是这些查询通知,该通知改变底层结果集。
不隶属于 StackOverflow