Я не совсем понимаю передовой опыт использования и повторного использования entity-framework Context.
Мой вопрос: следует ли мне пытаться создать 1 контекст и многократно использовать его для разных запросов или мне следует создавать новый контекст для каждого запроса?
Например, если у меня есть форма с 10 диаграммами, все с данными, запрашиваемыми из одних и тех же таблиц, должны ли эти 10 запросов быть из одного контекста или из 10 разных контекстов?
С точки зрения инкапсуляции кода я бы предпочел создать 10 новых контекстов, это хорошая идея и масштабируемость?





ИМХО - я могу ошибаться, но я так делаю ...
Если вы говорите о модели - используйте контекст. Поскольку вам нужна только одна Модель - Контекст для запроса, то есть это модель базы данных.
Если вы говорите об ObjectContext - то по одному на каждый запрос (Linq). Взгляните на этот Вопросы производительности для Entity Framework
Все зависит от вашего приложения.
Ключевое соображение заключается в том, что ObjectContext не является потокобезопасным, поэтому для веб-приложения ObjectContext для каждого запроса - это правильный путь.
Для приложения Win Forms вы можете посмотреть на наличие более долгоживущих ObjectContexts. Однако, если вы предпочитаете более узкий кругозор, я бы сначала попробовал это, а не преждевременно оптимизировать.
Подробнее в блоге Дэнни Симмонса здесь.
Спасибо за ссылку, она предоставила мне необходимую информацию, чтобы я чувствовал себя комфортно, создавая разные контексты для ситуации в моем вопросе. Также я раньше не замечал метода Detach, так что он пригодится в будущих проектах.
Очень хорошая ссылка, она помогла развеять некоторые опасения по поводу производительности при создании множества контекстов.