Domanda

Sono così perplesso.

Sto usando questo open-source snippet. Ho una tabella senza alcun trigger in SQL Server, e tuttavia lo SqlCacheDependency sta funzionando benissimo. Ho pensato che avevi bisogno di trigger sul tavolo per farlo funzionare ?!

                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));
                }

Ogni volta che ho impostato il campo timeupdated a GetDate (), il mio codice rileva che oggetto o è di nuovo null, che dovrebbe, perché dovrebbe essere eliminato dalla cache dopo una volta che è obsoleto, ma il motivo per cui sta funzionando? Ho appena iniziato seguente tutorial su SqlCacheDependency, quindi forse ho perso qualcosa durante la lettura di loro.

EDIT: Stanno usando

SqlCacheDependency dependency = new SqlCacheDependency(command);

e credo che questo non richiede trigger.

Non esitate a condividere se non ti piace questo approccio e preferiscono qualche altro approccio.

È stato utile?

Soluzione

No, non hai bisogno di trigger in quanto tali. E 'tutto fatto su Query Notifiche . Hanno un letto attraverso questo articolo, si spiega i 3 modi notifiche delle query può essere configurato usando ADO.NET.

E 'queste notifiche di query, che notificano delle modifiche al gruppo di risultati sottostante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top