Подтвердить что ты не робот

Должен ли я делиться контекстом Entity-Framework или создавать новый контекст для каждой операции?

Я не настолько разбираюсь в лучшей практике относительно использования и повторного использования сущности-рамки Context.

Мой вопрос: должен ли я попытаться создать один контекст и повторно использовать его много раз для разных запросов или я должен создать новый контекст для каждого запроса?

Например, если у меня есть форма с 10 диаграммами, все с запрошенными данными из тех же таблиц, должны ли 10 запросов быть из одного контекста или из 10 разных контекстов?

С точки зрения инкапсуляции кода я бы предпочел создать 10 новых контекстов, это хорошая идея и является ли она масштабируемой?

4b9b3361

Ответ 1

Все зависит от вашего приложения.

Ключевым соображением является то, что ObjectContext не является потокобезопасным, поэтому для веб-приложения ObjectContext для каждого запроса является способом перехода.

Для приложения Win Forms вы можете посмотреть, как долговечные объекты ObjectContext. Тем не менее, если вы предпочитаете более подробно обходить вещи, я бы попробовал это сначала, а не преждевременно оптимизировать его.

Подробнее о блоге Дэнни Симмонса здесь.

Ответ 2

ИМХО - я мог ошибаться, но так я это делаю...

Если вы говорите о модели, используйте контекст. Поскольку вам нужен только один модель - контекст, в который нужно запросить - то есть это модель базы данных.

Если вы говорите об ObjectContext - то по одному для каждого запроса (Linq). Возьмите alook в этом Рекомендации по производительности для платформы Entity