Asp.net mvc 将SQLDependency或SqlCacheDependency与存储库模式一起使用
我正在使用Repository模式构建一个ASP.NET MVC应用程序。我的存储库中的一个典型方法如下Asp.net mvc 将SQLDependency或SqlCacheDependency与存储库模式一起使用,asp.net-mvc,repository-pattern,sqldependency,sqlcachedependency,Asp.net Mvc,Repository Pattern,Sqldependency,Sqlcachedependency,我正在使用Repository模式构建一个ASP.NET MVC应用程序。我的存储库中的一个典型方法如下 public IList<T> Select<T>(string cacheKey, string Sql, object filter) where T: new() { IList<T> items = MemoryCache.Default.Get(cacheKey) as IList<T>;
public IList<T> Select<T>(string cacheKey, string Sql, object filter) where T: new()
{
IList<T> items = MemoryCache.Default.Get(cacheKey) as IList<T>;
if (items == null || !items.Any())
{
items = Connection.Select<T>(Sql, filter);
MemoryCache.Default.Add(cacheKey, items, DateTime.Now.AddMinutes(120));
}
return items;
}
公共IList选择(字符串缓存键、字符串Sql、对象过滤器),其中T:new()
{
IList items=MemoryCache.Default.Get(cacheKey)作为IList;
if(items==null | |!items.Any())
{
items=Connection.Select(Sql,filter);
MemoryCache.Default.Add(cacheKey,items,DateTime.Now.AddMinutes(120));
}
退货项目;
}
它的用途如下
IEnumerable<OSADCOL> osadcols = Repository.Select<OSADCOL>("OSADCOLS__TblId=" + Id, "TBLid = @id", new { id = Id });
IEnumerable osadcols=Repository.Select(“osadcols_uutblid=“+Id”,TblId=@Id”,new{Id=Id});
在上面提到的示例中,OSADCOL是我的应用程序中的一个模型,表示数据库中具有相同名称的表。连接。选择
功能是ORMlite功能。我不使用实体框架来解决性能问题。我的问题如下。我目前正在兑现结果集,以备将来参考,但我是以硬编码的方式进行的。我将结果集缓存2小时。显然,当OSADCOL的表数据发生更改时,正确的实现是丢弃我的现金数据。似乎我必须使用SQLDependency或SQLCacheDependency。问题如下: