如何在ASP.NET MVC 4中缓存服务器数据?

22

我正在开发mvc4网页应用程序。 我想在服务器端缓存一些数据库查询结果和视图。 我使用了 -

HttpRuntime.Cache.Insert()

但它会在客户端缓存数据。请帮忙。

1个回答

42

我正在使用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);
}

很棒,简单易懂的解释。谢谢! - realmikep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接