Сделать объектный контекст (EF4/CTP4) потокобезопасным?
Я использую последний выпуск Entity Framework 4 - CTP 4 для моего проекта в ASP.NET 4. Эта версия (EF4-CTP 4) предоставляет возможность для создания контекста объекта (или DBContext) с использованием подхода первого кода. Этот подход имеет свой недостаток, который требует много времени, поэтому я собираю его один раз при запуске приложения. Однако я читал во многих статьях, что, возможно, не стоит создавать одноэлементный объект Object Context. Поэтому я хочу сохранить небольшой контекстный экземпляр может быть за сеанс.
Итак, мои вопросы: 1. Желательно ли, чтобы объектный контекст использовался совместно для нескольких сеансов? 2. Если мы хотим иметь один экземпляр для каждой сессии, можем ли мы создать его один раз и использовать его для нескольких сеансов? 3. При совместном использовании через сеанс, как мы можем поддерживать параллелизм / коммиты?
Благодарю.
1 ответ
Я бы предложил не использовать синглтон. Вот ТАК вопрос о том, почему.
Это также зависит от того, является ли это веб-приложением / приложением Windows, но с помощью веб-приложений мы помещаем OC в HttpContext, используя DI-контейнер.
Таким образом, только одно соединение открывается на HTTP-запрос.