У меня есть n-уровневое приложение ASP.NET MVC.Я использую Entity Framework в DAL.Поэтому я решил использовать слой кэша в dal для повышения производительности приложения.Я реализовал это, но есть проблема.Я помещаю сущность в кэш памяти первым запросом, после чего при втором запросе я пытаюсь получить сущность из кеша, это ошибка выброса объекта.Я знаю эту ошибку нормально, потому что я не могу из кеша.Но я не мог думать об этом.Что я могу сделать?Должен ли я использовать бизнес-объект в dal или?
"Экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих подключения"
public IQueryable<Category> GetAll()
{
var cacheKey = string.Format("{0}_{1}", "CategoryRepository", "GetAll");
var isExists = _cache.Contains(cacheKey) && Const.CacheIsActive;
if (isExists)
{
//At here error: "The ObjectContext instance has been disposed and
//can no longer be used for operations that require a connection"
return _cache.Get<IQueryable<Category>>(cacheKey);
}
else
{
var obj = _db.Categories;
_cache.Add(cacheKey, obj);
return obj;
}
}