Wszystko,Unity Lifetime Menedżerowie i EF Dane kontekstowe -> Najlepsze praktyki
Odnotowano wiele postów na temat Menedżerów Lifetime Unity ale muszę jeszcze znaleźć ktoś podać dobrą zasada dla „w tych przypadkach powinieneś zawsze używać X ". Pozwól mi opisać moją aplikację, mam aplikację sieci Web ASP.NET MVC 4. Mam rozwiązanie Visual Studio zawierające 3 projekty, mój projekt "Core", który ma wszystkie moje rzeczy EF, testowanie projektu i MVC Web Project. Używam jedności dla wstrzykiwania zależności i następujący kod teraz:
// Context
container.RegisterType<IDatabaseFactory, DatabaseFactory>(
new ContainerControlledLifetimeManager();
container.RegisterType<UnitOfWork>(
new ContainerControlledLifetimeManager());
Jednak ja widząc, że mój kontekst nie jest odtwarzany z każdym nowym wniosku internetowej, która jest co myślę chciałbym (niech mnie wiem, czy się mylę w tym założeniu). Mam ciężko analizując wszystkie informacje z poniższych witryn i przeczytałem o wielu ludziach tworzących własną klasę o nazwie PerHttpRequestLifetimeManager, aby sobie z tym poradzić.
Jaka jest tutaj najlepsza praktyka?
- Zrozumienie Menedżerowie Lifetime by Developer Network Microsoftu - http://msdn.microsoft.com/en-us/library/ff660872(v=PandP.20).aspx
- MVC DI & Unity z Lifetime Managera poprzez CodeProject - http://www.codeproject.com/Articles/424743/MVC-DI-Unity-with-Lifetime-Manager
- ASP.NET MVC Wskazówka: Dependency Injection z Unity Block aplikacji poprzez Shiju Varghese Blog - http://weblogs.asp.net/shijuvarghese/archive/2008/10/24/asp-net-mvc-tip-dependency-injection-with-unity-application-block.aspx
- MVC, EF - pojedyncza instancja DataContext Per-Web-Request w jedności przez przepełnienie stosu - MVC, EF - DataContext singleton instance Per-Web-Request in Unity
- Wstrzyknij ten sam element danych t instancji w wielu typach z Unity przez Stack Overflow - Inject same DataContext instance across several types with Unity
Powiązane: http://stackoverflow.com/questions/10585478/one-dbcontext-per-web-request-why. – Steven