Je suis tellement perplexe. J'utilise cet extrait de code source ouvert. J'ai une table sans déclencheurs dans SQL Server, et pourtant le SQLCacheDependency fonctionne bien. Je pensais que vous aviez besoin de déclencheurs sur la table pour que ça marche ?!sql server 2008 - sqlcachedependency sans trigger?
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));
}
Chaque fois que je mets le champ timeupdated à getDate(), mon code détecte que l'objet o est à nouveau nul, qu'il devrait, car il devrait être abandonné du cache après une fois qu'il est obsolète, mais pourquoi est-il fonctionne ? Je viens de commencer à suivre des tutoriels sur SQLCacheDependency, alors j'ai peut-être manqué quelque chose en les lisant.
EDIT: Ils utilisent
SqlCacheDependency dependency = new SqlCacheDependency(command);
et je suppose que cela ne nécessite pas de déclencheurs.
N'hésitez pas à partager si vous n'aimez pas cette approche et préférez une autre approche.
Ah, je viens d'éditer ma réponse! lol – TPR