Один из вариантов - извлечь объект Person из вашей базы данных при первом обращении и сохранить его в System.Web.HttpContext.Current.Cache
, это обеспечит чрезвычайно быстрый доступ, и ваши данные Person будут временно сохранены в ОЗУ на веб-сервере.
Но будьте осторожны: если вы таким образом храните значительно больший объем пользовательских данных, вы можете съесть много памяти.Тем не менее, это будет совершенно нормально, если вам нужно кэшировать всего несколько тысяч или около того.Очевидно, что это зависит от того, сколько пользователей вы ожидаете использовать ваше приложение.
Вы можете добавить вот так:
private void CachePersonData (Person data, string storageKey)
{
if (HttpContext.Current.Cache[storageKey] == null)
{
HttpContext.Current.Cache.Add(storageKey,
data,
null,
Cache.NoAbsoluteExpiration,
TimeSpan.FromDays(1),
CacheItemPriority.High,
null);
}
}
... и получить вот так:
// Grab data from the cache
Person p = HttpContext.Current.Cache[storageKey];
Не забывайте, что объект, возвращаемый из кеша, можетбыть нулевым, поэтому вы должны проверить это и загрузить из базы данных по мере необходимости (затем кешировать).