кэшировать список данных asp.net c # - PullRequest
4 голосов
/ 28 февраля 2011

Я хочу реализовать кэширование списка, извлеченного из БД. Я посмотрел на это:

Как я могу кэшировать объекты в ASP.NET MVC?

У меня есть это в моем коде:

var addresses =  repository.GetAllAddresses();//returns IQueryable<string>

используя ответ на вопрос выше, как я могу кешировать это? Я создал класс CacheExtensions, но не уверен, куда идти дальше.

1 Ответ

4 голосов
/ 28 февраля 2011

Как только у вас есть метод расширения, его очень просто использовать (не забудьте перенести статический класс, который вы определили, метод GetOrStore в область, добавив директиву using в пространство имен, в котором он содержится, или вы выиграли » не сможет увидеть метод расширения GetOrStore<T>):

IEnumerable<string> addresses = HttpRuntime
    .Cache
    .GetOrStore<IEnumerable<string>>(
        "addresses", 
        () => repository.GetAllAddresses().ToArray()
);

На что обратить внимание:

  • Мы используем «адреса» в качестве ключа кеша, поэтому результат будет храниться под этим ключом.
  • Мы вызываем .ToArray() на IQueryable<string>, чтобы охотно получить адреса и сохранить результаты в кеше, а не в запросе.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...