Cache a Db-Resultset - Лучшая практика?(Приложение, а не ASP.NET) - PullRequest
1 голос
/ 15 сентября 2011

ASP.NET имеет хорошую функцию кэширования, как мне лучше применить ту же логику к этому сценарию?Это фоновое приложение, а не веб-что-то.Я хочу получить и вернуть кэшированный объект из памяти, а не повторять запросы из базы данных.Только первый запрос для каждого уникального совпадения параметров c, a и cu должен вызывать базу данных.Допустим, за 6 часов.

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

(Обратите внимание, что образец и наименования псевдо)

/// <summary>
/// Constructor 
/// </summary>
public Collect(string c, string a, string cu) 
    : base(c, a, cu)
{

    db = new DatabaseInstance();

    // DObject
    this._d  = (from d in db.DObject
                        where ....
                     select d).ToList();

    // SObject  
    this._s  = (from s in db.SObject
                    where ......
                    select s).ToList();

    // MObject
    this._v = (from mv in db.MObject
                     where ......
                     select mv).ToList();
}

1 Ответ

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

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

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