Jest to bardzo podstawowe pytanie podczas korzystania z NHibernate w aplikacji internetowej, ale nie widzę uzgodnionej najlepszej praktyki podczas wyszukiwania w Internecie. Widziałem, jak to robiono w wielu różnych miejscach:Gdzie można otwierać i zamykać ISiA NHibernate w aplikacji internetowej (konkretnie MVC)?
Utworzony i usunięty w metodzie Repozytorium - Wydaje mi się to głupie, ponieważ kiedy dostaniesz obiekt, jest on już odłączony.
Na początku i na końcu kontrolera Działanie - Wydaje się, że jest to lepsze, ale denerwujące, aby to zrobić dla każdej czynności.
na poziomie aplikacji, w global.asax beginrequest i endrequest - To wydaje się najlepszy pomysł, ale ponownie, widziałem kilka przykładów tworzenia w Init zamiast beginrequest (ostry architektury na przykład) - chociaż jestem nie pewny dlaczego.
Być może istnieją inne podejścia?
Czy pojemniki IoC mogą w jakiś sposób pomóc?
Może znasz dobry zasób w sieci w związku z tym?
I jakiej metody używasz?
Dzięki
Sharp Architecture wyjaśnia, dlaczego - jest to coś z IIS7, o ile pamiętam. – queen3
W komentarzach do kodu mówi: "Z powodu problemów na IIS7, inicjalizacja NHibernate musi wystąpić w Init().", Ale nie wiem, jakie są problemy. – UpTheCreek