Если вы располагаете объект Entity Framework в MVC - PullRequest
2 голосов
/ 22 декабря 2011

Я занимаюсь разработкой приложения MVC3 и меня интересует следующее.Должен ли объект Entity Framework (DbContext объект) располагаться перед передачей данных в представление?

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

Есть ли снижение производительности при этом?

Ответы [ 4 ]

4 голосов
/ 22 декабря 2011

Да, вы обязательно должны избавляться от контекста. Хит производительности должен быть минимальным.Любые предметы, которые могут быть утилизированы, должны быть утилизированы ВСЕГДА.Внедрение зависимостей может избавить вас от необходимости беспокоиться о его вызове, если все сделано правильно, так как DI-фреймворк избавится от вас, если поступит инструкция.

2 голосов
/ 22 декабря 2011

Согласен с ответом Адама Тулипера. Кроме того, если вам нужен доступ к связанным объектам, вы можете использовать метод .Include (o => o.EntityName), чтобы убедиться, что данные включены в поиск данных.

Этот блог пишет о загрузке связанных объектов: http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx

2 голосов
/ 22 декабря 2011

Не передавайте сущности EF в ваше представление, используйте шаблон модели представления.И не слишком полагайтесь на ленивую загрузку, она будет работать плохо.Используйте метод Include для активной загрузки нужных вам объектов.

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

1 голос
/ 22 декабря 2011

Если под «рабочим объектом entityframe» вы подразумеваете объект DbContext, то Нет, не беспокойтесь об этом.

... также это должен быть объект уровня контроллера, а не уровень просмотраодин.

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