Использование ObjectContext в Webforms, использование операторов против одного экземпляра на странице - PullRequest
0 голосов
/ 26 октября 2011

У меня есть вопрос относительно использования using операторов вокруг ObjectContext объектов в веб-формах.

Если у нас есть настройка формы с двумя методами, скажем, 'Load()' и 'Save()', и оба требуют использования ObjectContext, было бы лучше создать переменную экземпляра контекста и использовать ее воба метода, полагаясь на продолжительность жизни класса для косвенного удаления объекта или явного создания двух экземпляров контекста объекта, заключенных в using, по одному разу на метод?

Причина, по которой я спрашиваючто я не уверен в двух вещах.A) являются ли издержки на создание экземпляра контекста объекта достаточно высокими, чтобы гарантировать, что контекст остается открытым для использования всем классом, или, с другой стороны, B) является ли существование контекста объекта для продолжительности жизни класса слишком большим имы должны явно закрыть его после того, как единица работы будет завершена?

Какие-нибудь идеи / предложения / лучшие практики для такого рода среды?

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

Вы можете управлять ObjectContext для каждого запроса, не думайте об этом как для страницы или WebForm, он должен быть привязан к текущему Request, проверьте здесь для получения более подробной информации:

Как управлять ObjectContext по запросу в ASP.NET

Это более или менее то же, что обычно делается для сессий NHibernate.

Лично я использовал для написания кода с помощью оператора usingи немедленно создайте / утилизируйте ObjectContext и в каждом методе, в котором я нуждался.В некоторых случаях вы должны уделять этому особое внимание, потому что ваши сущности будут загружены из одного контекста и сохранены в другом, и мне пришлось прикрепить их обратно, если я правильно помню.Я давно так делал ...

2 голосов
/ 26 октября 2011

Если вы посмотрите на Совет 18 , вы увидите, что время создания ObjectContext незначительно.

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

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