zz
Дата: 19.05.2014 09:27:59
Здрасьте.
Имеем задачу: создать проект на WinForms, задействуя моднейшие технологии и паттерны MVP, EF, DI.
Бодро рисуем слои: View => Presenter => Logic => Repository => EF => Db
Прикручиваем DI контейнер, разруливаем зависимости, добираемся до ObjectContext, и задаем себе животрепещущий вопрос: а какой у него должен быть lifetime?
С вебом все просто: в начале запроса создали, в конце запроса грохнули, в Ninject на этот случай даже есть .InRequestScope.
А вот с WinForms непонятно. Microsoft рекомендует "one context per form". Это что же это получается. В нижних слоях, при попытке получения DbContext, надо каким-то образом понять, из какой формы пришел запрос на контекст, и в зависимости от этого вернуть соотв. контекст. Как-то это невесело весьма.
Посему: поделить пожалуйста best practics. Интересует именно связка WinForms + EF + DI, кто как решает.
Или не париться вообще, создать один контекст на аппликуху? Чем это чревато?