public virtual void FillAndMonitorCache(List<string> sqlListToBeMonitored, string cacheKey, object dataToBeCached) { var policy = new CacheItemPolicy(); SqlDependency.Start(_varianSystemConnectionString); using (var connection = new SqlConnection(_varianSystemConnectionString)) { foreach (var sqlToBeMonitored in sqlListToBeMonitored) { using (var command = new SqlCommand(sqlToBeMonitored, connection)) { command.Notification = null; var dependency = new SqlDependency(); dependency.AddCommandDependency(command); connection.Open(); command.ExecuteScalar(); connection.Close(); var monitor = new SqlChangeMonitor(dependency); policy.ChangeMonitors.Add(monitor); } } } MemoryCache.Default.Add(cacheKey, dataToBeCached, policy); } public virtual object GetFromCache(string cacheKey) { return MemoryCache.Default[cacheKey]; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)