Контекст объекта Entity Framework в объекте сеанса ASP.NET?
У нас есть многоуровневое приложение Asp.NET Web Forms. Уровень данных имеет класс с именемDataAccess
какие препятствияIDisposable
и имеет экземпляр нашего Объектного контекста Entity Framework в качестве частного поля. Класс имеет несколько открытых методов, возвращающих различные коллекции сущностей, и будет располагать свой объектный контекст при его удалении.
Из-за ряда проблем, с которыми мы столкнулись, мы решили, что было бы большим плюсом сохранить контекст объекта (или экземплярDataAccess
) по объему дольше на сервере. Было предложено сохранить экземпляр вHttpContext.Current.Items
коллекция изэта почта чтобы иметь один экземпляр на запрос Http.
Что мне интересно, так это: какие проблемы / проблемы / проблемы могут возникнуть при хранении экземпляра нашего Объектного контекста вHttpContext.Current.Session
объект ????
Это будет относительно быстро реализовать и не повлияет на наши многочисленные существующие модульные тесты.
Мы будем использовать AutoFac и класс ServiceProvider для предоставления экземпляров. Когда требуется экземпляр ObjectContext, он будет возвращен кодом, подобным следующему:
private static Entities GetEntities(IContext context)
{
if (HttpContext.Current == null)
{
return new Entities();
}
if (HttpContext.Current.Session[entitiesKeyString] == null)
{
HttpContext.Current.Session[entitiesKeyString] = new Entities();
}
return (Entities)HttpContext.Current.Session[entitiesKeyString];
}
Приветствия.