web-dev-qa-db-ja.com

asp.net mvc 4のサーバー上のデータをキャッシュする方法は?

私はmvc4 Webアプリケーションに取り組んでいます。一部のデータベースクエリの結果とビューをサーバー側にキャッシュしたい。私が使った

HttpRuntime.Cache.Insert()

ただし、クライアント側でデータをキャッシュします。助けてください。

21
vivek

MemoryCacheを使用してクエリ結果を保存していますが、これまでのところうまく機能しています。
ここに、これを実装するために使用したいくつかのリンクを示します。
- 。NET 4.0(codeproject)でMemoryCacheを使用
- 。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);
}
40
darkchico