Подтвердить что ты не робот

Как кэшировать данные на сервере в asp.net mvc 4?

Я работаю над веб-приложением mvc4. Я хочу кэшировать некоторые запросы и представления запросов к базе данных на стороне сервера. Я использовал -

HttpRuntime.Cache.Insert()

но он кэширует данные на стороне клиента. Пожалуйста, помогите.

4b9b3361

Ответ 1

Я использую MemoryCache для хранения результатов запроса, и он работает до сих пор.
Вот несколько ссылок, которые я использовал для его реализации.
- Использование MemoryCache в .NET 4.0 (codeproject)
- Использование MemoryCache в .NET 4.0 (запись в блоге)

Когда я читаю их сейчас, я нахожу их не такими ясными, так что, возможно, есть лучшая связь, которую я где-то потерял. Вот пример моего кода, который, я надеюсь, достаточно ясен, чтобы вы видели, как он работает.

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);
}