我们正在尝试实现 SqlCacheDependency,并且在通过存储过程添加依赖项时,它会在将对象添加到缓存后立即删除它。它将 CacheItemRemovedReason 设为 4。
我们使用了下面提到的链接中提供的数据库同步示例。
http://www.alachisoft.com/resources/samples/
string storedProcName = "dbo.TestStoredProc1";
SqlCmdParams sqlParams = new SqlCmdParams();
sqlParams.Value = prod.ProductID;
//sqlParams.
Dictionary<string, SqlCmdParams> prms = new Dictionary<string, SqlCmdParams>();
prms.Add("ID", sqlParams);
_cache.Add(prod.ProductID.ToString(), item,DSWriteOption.None,null);
item.Dependency = new SqlCacheDependency(connString, "select * from dbo.state_lookup where state_id = " + prod.ProductID.ToString());
Database Synchronizationpublic void OnCacheDataModification(string key, CacheEventArg args)
{
switch (args.EventType)
{
case EventType.ItemAdded:
// Key has been added to the cache
Console.WriteLine(key + " Item Added");
break;
case EventType.ItemUpdated:
Console.WriteLine(key + " Item Updated");
break;
case EventType.ItemRemoved:
break;
}
我添加了项目更改侦听器,它在进入 ItemAdded 部分后立即进入 ItemRemoved 部分。仅当数据库中的数据发生更改时,才应调用已删除的项目回调。
SQL Server 版本:Microsoft SQL Server 2008 R2 (SP2)
Alachisoft 版:企业试用版
Alachisoft SDK 版本:4.9.1.1