У меня есть некоторые статические значения, поступающие из базы данных, которые необходимо сохранять в приложении для каждого входа пользователя (я использую приложение ASP.Net MVC 4).
Для этого я реализовал MemoryCache (не уверен, что это лучше, чем использовать HttpApplicationState или System.Web.HttpContext.Current.Cache.). Оценил, если какой-либо намек, который я могу получить на этом тоже.
//Create a custom policy as per the business need
CacheItemPolicy wkflPolicy = new CacheItemPolicy(); // I dont want to set expiration
if (wkflCache.Get("MyKey") == null)
{
// Caching all static DB values.
DataSet myDS= objEditComponent.GetDBValues();
wkflCache.Add("MyKey", myDS, wkflPolicy);
}
Он сохраняется для всех обратных передач, но когда я делаю вызов Ajax со своей страницы cshtml (просмотр), я не мог получить значение кеша, поэтому должен сделать еще один вызов БД после проверки нулевого условия.
Это происходит из-за нехватки памяти (интересно, почему каждый раз, когда я делаю вызов ajax, возникает нехватка памяти) или я что-то здесь упускаю?