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

Я не совсем понимаю передовой опыт использования и повторного использования entity-framework Context.

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
22
0
5 215
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

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

Очень хорошая ссылка, она помогла развеять некоторые опасения по поводу производительности при создании множества контекстов.

Rhys 30.01.2009 15:56
Ответ принят как подходящий

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

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

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

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

Спасибо за ссылку, она предоставила мне необходимую информацию, чтобы я чувствовал себя комфортно, создавая разные контексты для ситуации в моем вопросе. Также я раньше не замечал метода Detach, так что он пригодится в будущих проектах.

Rhys 30.01.2009 15:59

Другие вопросы по теме