我正在开发mvc4网页应用程序。 我想在服务器端缓存一些数据库查询结果和视图。 我使用了 -
HttpRuntime.Cache.Insert()
但它会在客户端缓存数据。请帮忙。
我正在开发mvc4网页应用程序。 我想在服务器端缓存一些数据库查询结果和视图。 我使用了 -
HttpRuntime.Cache.Insert()
但它会在客户端缓存数据。请帮忙。
我正在使用MemoryCache来存储查询结果,目前效果良好。
这是我用来实现它的一些链接。
- 在.NET 4.0中使用MemoryCache(codeproject)
- 在.NET 4.0中使用MemoryCache(博客文章)
阅读它们时,我发现它们并不是很清晰,所以可能有更好的链接我已经遗失了。
这是我的代码示例,我希望它足够清晰,让您看到它的工作原理。
public static class AgencyCacheManager
{
private static MemoryCache _cache = MemoryCache.Default;
public static List<RefAgency> ListAgency
{
get
{
if (!_cache.Contains("ListAgency"))
RefreshListAgency();
return _cache.Get("ListAgency") as List<Agency>;
}
}
public static void RefreshListAgency()
{
var listAgency = GetAllComplete();
CacheItemPolicy cacheItemPolicy = new CacheItemPolicy();
cacheItemPolicy.AbsoluteExpiration = DateTime.Now.AddDays(1);
_cache.Add("ListAgency", listAgency, cacheItemPolicy);
}
}
并且从缓存中检索列表
public Agency FindBy(string agencyId)
{
return AgencyCacheManager.ListAgency.SingleOrDefault(x => x.AgencyPartnerCode == agencyId);
}