Варианты кеширования данных из базы данных? - PullRequest
0 голосов
/ 15 ноября 2011

В моем коде уже есть такие вещи в контроллере:

    [OutputCache(Duration = 86400]
    public string SelectTopics(bool showAll = true, string topicID = null) 
    {
        return SelectHelper.Topics(showAll, topicID);
    }

Правильно ли я сказал, что это будет кешироваться?

Как насчет внешних неконтроллерных классов и методов. Есть ли какой-нибудь способ, которым я могу иметь кэширование базы данных с этими или все кэширование базы данных должно быть через контроллер? Как насчет других способов / средств доступа к данным. Что-нибудь еще, что позволяет кэшировать?

1 Ответ

2 голосов
/ 15 ноября 2011

Правильно ли я сказал, что это будет кешироваться?

Это кэширует весь вывод HTML.Это означает, что действие контроллера даже не будет выполнено, если выходные данные будут кэшированы.И в этом случае SelectHelper.Topics не будет работать.

Другие способы кэширования данных включают использование классов в пространстве имен System.Runtime.Caching .Они позволяют хранить NET объекты в кеше.Например, вы можете сохранить результаты, полученные из вызова базы данных, в кеш, а затем проверить, содержит ли кеш эти результаты, прежде чем обращаться к базе данных в следующий раз.Вы можете взглянуть на класс MemoryCache для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...