【发布时间】:2014-04-25 06:52:42
【问题描述】:
我正在开发 mvc4 Web 应用程序。我想在服务器端缓存一些数据库查询结果和视图。我用过-
HttpRuntime.Cache.Insert()
但它会在客户端缓存数据。请帮忙。
【问题讨论】:
标签: c# asp.net sql-server asp.net-mvc-4 caching
我正在开发 mvc4 Web 应用程序。我想在服务器端缓存一些数据库查询结果和视图。我用过-
HttpRuntime.Cache.Insert()
但它会在客户端缓存数据。请帮忙。
【问题讨论】:
标签: c# asp.net sql-server asp.net-mvc-4 caching
我正在使用 MemoryCache 存储查询结果,目前运行良好。
以下是我用来实现它的一些链接。
- Using MemoryCache in .NET 4.0 (codeproject)
- Using MemoryCache in .NET 4.0 (blog entry)
当我现在阅读它们时,我发现它们不是那么清楚,所以也许有一个更好的链接我在某个地方丢失了。
这是我的代码示例,我希望它足够清晰,以便您了解它是如何工作的
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);
}
【讨论】: