Что-то в этом духе?
public DataTable GetDataTableFromCacheOrDatabase()
{
DataTable dataTable = HttpContext.Current.Cache["secret key"] as DataTable;
if(dataTable == null)
{
dataTable = GetDataTableFromDatabase();
HttpContext.Current.Cache["secret key"] = dataTable;
}
return dataTable;
}
Вам понадобится какой-то механизм для очистки таблицы данных из кэша, если она изменится.Например, вы можете использовать SqlCacheDependency .
По запросу, чтобы очистить кеш через час после добавления таблицы, вы должны сделать:
HttpContext.Current.Cache.Insert("secret key", dataTable, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);