Подтвердить что ты не робот

Entity Framework 4 - продолжительность жизни/область контекста в приложении winform

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

Я работаю с приложением ASP.NET, где контекст управляется каждым HTTP-запросом, который, на мой взгляд, очень хороший подход.

Однако теперь я работаю с приложением winforms, и иногда у меня есть транзакции или отчеты, которые не будут работать очень хорошо, если я просто создаю контекст для каждого запроса. Не то, чтобы эта проблема с производительностью была очень проблематичной, я просто хочу услышать, есть ли простая стратегия в соответствии с HTTP-запросом в ASP.NET для winforms?

4b9b3361

Ответ 1

Не создавайте контекст для каждого запроса. В то же время не создавайте контекст, который будет использоваться для всего жизненного цикла формы (или вашего приложения).

Создать контекст для одного блока работы (который может охватывать многие запросы).

Таким образом, у вас есть все ваши изменения, инкапсулированные в контекст, и вы позволяете Entity Framework переносить обращения к базе данных в довольно маленькую транзакцию, не беспокоясь об этом самостоятельно.

Я предпочитаю абстрагировать шаблоны репозитория и единицы работы из контекста Entity, чтобы я мог использовать их независимо (что делает все очень ясным). MSDN действительно имеет достойную статью о деталях:

MSDN - Использование шаблонов репозитория и единицы работы с Entity Framework 4