Вопрос о передовых методах работы с источниками данных

Вероятно, это не сложный проект, но я не уверен, как лучше с ним справиться.

У меня есть страница ASP.Net, которая должна запросить базу данных для получения некоторой информации (список из примерно 12 адресов электронной почты), которые используются во всем одностраничном приложении (в основном набор из 8 кнопок, каждая из которых помещает запись в другой Таблица БД, которая включает сообщение [разное для каждой кнопки] и адрес электронной почты [из первого БД], на который должно быть отправлено сообщение).

Список адресов меняется редко. В какой момент мое приложение должно запрашивать адреса в БД? Делать это при нажатии кнопки кажется пустой тратой, поскольку я буду делать один и тот же запрос и получать одни и те же результаты снова и снова. Я думал открыть свой источник данных и использовать SqlDataReader и сохранить список адресов электронной почты в строковом массиве, но где лучше всего это сделать, чтобы данные сохранялись, но не запрашивались повторно (как вы можете сказать , Я не очень хорошо разбираюсь в ASP, и мне все еще неясно, каково время жизни переменных - приложение, сеанс или просто во время обработки страницы).

Любая помощь приветствуется.

Спасибо

Адам


person Adam Rosen    schedule 02.03.2011    source источник


Ответы (4)


Используйте кэш. Найдите реализацию метода GetProductData () на этой странице

person amit_g    schedule 02.03.2011
comment
Спасибо (и всем, кто указал мне в этом направлении). Я почитаю кеш и пойду по этому пути. - person Adam Rosen; 02.03.2011

На уровне данных поместите результаты запроса в папку кеш.

В этом методе вы сначала проверяете, существует ли запись в кеше, если нет, вы вызываете БД и заполняете кеш результатами. Если это так, вы возвращаете кешированные значения.

person Oded    schedule 02.03.2011

Вам необходимо изучить использование кеша.

person Achilles    schedule 02.03.2011

Кэш, скорее всего, то, что вам нужно: http://msdn.microsoft.com/en-us/library/6hbbsfk6.aspx

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

Я обычно оборачиваю свое кеширование в свойствах / методах, которые будут пытаться получить значение из кеша, если оно присутствует, а затем вернуться в базу данных, если это не так (либо никогда ранее не читалось, либо срок его действия истек).

person Rozwel    schedule 02.03.2011