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

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

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

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

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

Ответы [ 2 ]

12 голосов
/ 23 января 2009

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

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

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

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

2 голосов
/ 19 января 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...