@Venesuella
BlackJack и ...

Как правильно работать с контекстом в Entity Framework?

Здравствуйте! Подскажите как более правильно работать с контекстом в EF
1) нужно ли для каждого нового запроса создавать новый объект контекста, а после уничтожать его?
2) нужно ли запрос окружать блоком try—catch?
  • Вопрос задан
  • 1291 просмотр
Пригласить эксперта
Ответы на вопрос 4
@VanKrock
Лучше всего использовать IoC контейнеры, который будет управлять временем жизни контекста. Но если вы не используете контейнеры, то лучше создавать контекст на транзакцию.
Ответ написан
Комментировать
ImmortalCAT
@ImmortalCAT
C# loving
Создание контекста не такое сложное и не жрёт много ресурсов.
Другое дело когда контекст хранит в себе БД. То есть сайт кэширует бд в себя, что бы повысить скорость и отклик.
Я обычно использую контекст на контроллер, а не на транзакцию, пишу обычную private MYDBCN mydb{get;set;}
и
protected override Dispose(bool dispose)
{
mydb.Dispose();
}
Ответ написан
Обычно при каждом запросе создается свой контекст. Потому, что во первых веб приложения обычно не хранят состояния (stateless), во вторых EF Context не предназначен для кэширования и с увеличением количества сущьностей в контексте начинает тормозить.

Окружать все try—catch я думаю смысла нет, лучше сделать хорошие кастомные странички ошибок.
Ответ написан
Комментировать
AxisPod
@AxisPod
Копайте в сторону шаблона проектирования UnitOfWork.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы