C # .NET с Entity Framework 4 - как обрабатывать контекст?лучшие практики? - PullRequest
3 голосов
/ 21 июня 2010

Мы находимся в процессе перехода от классического ASP с SQL и Sprocs. Наш выбор пал на c # .net 4 Webforms с Entity Framework 4.

Мой вопрос заключается в том, как обращаться с контекстом. Пример:

Вызов функции репозитория GetProductById(), которая открывает новый контекст (используя), а затем мы что-то меняем в объекте и сохраняем его.

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

Вышесказанное не сработало для нас. Затем мы попытались отправить контекст в нашем приложении. Хотя это сработало, мы не очень-то хотели работать так, если бы не пришлось.

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

Мы пытались найти лучшие практики по этой теме, но не смогли найти ни одной Буду признателен и поможет в этой теме.

Ответы [ 4 ]

4 голосов
/ 21 июня 2010

Шаблон единицы работы, описанный в этой статье, может помочь, хотя примеры в этой статье относятся к приложению MVC, а не к WebForms.

http://msdn.microsoft.com/en-us/ff714955.aspx

1 голос
/ 21 июня 2010

Другой доступный вариант - поместить контекст в запрос потока.Это делается путем создания контекста для события BeginRequest HTTPModule.Затем вам необходимо убедиться, что вы обрабатываете любые созданные вами ресурсы, которые должны быть удалены в событии EndRequest.

1 голос
/ 21 июня 2010

Использовать ключи объекта

Когда вы получаете объект из БД, а затем манипулируете им и через некоторое время (после удаления контекста) хотите сохранить его обратно, используйте значения первичного ключа.

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

Или Вы можете получить его снова перед сохранением. Это пустая трата ресурсов, но это самый пуленепробиваемый способ сделать это. Ева, хотя я бы не рекомендовал это.

Использование ASP? Пойдите с MVC тогда

Я настоятельно рекомендую вам перейти на Asp.net MVC, если вы привыкли к ASP, тогда вам будет легче и легче в MVC дома.

0 голосов
/ 22 июня 2010

Получив ярлык на нашем пути к работе (Шаблон единицы работы), мы нашли эту ссылку, которая в значительной степени точно соответствует нашей работе, и может быть полезна для тех, у кого такие же мысли, как у нас:

http://dotnet.dzone.com/news/using-unit-work-pattern-entity?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+zones%2Fdotnet+%28.NET+Zone%29

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