【问题标题】:How to cache data on server in asp.net mvc 4?如何在 asp.net mvc 4 中的服务器上缓存数据?
【发布时间】:2014-04-25 06:52:42
【问题描述】:

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

HttpRuntime.Cache.Insert()

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

【问题讨论】:

    标签: c# asp.net sql-server asp.net-mvc-4 caching


    【解决方案1】:

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

    【讨论】:

    • 很好,很简单,解释。谢谢!
    猜你喜欢
    • 2012-08-16
    • 2013-12-14
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 2013-02-12
    • 2013-05-08
    相关资源
    最近更新 更多