Я пытаюсь построить приложение ASP.NET MVC, используя Nhibernate и Structuremap вместе с шаблоном Repository.
Благодаря моему первоначальному подходу к этому проекту и последующему чтению я хотел, чтобы сессия Nhibernate была ограничена репозиториями, а репозитории - контроллером.Но в то же время, что касается транзакций, я хотел отделить это от методов репозитория (то есть я просто хотел вызвать session.Save ()).
Но, кажется, требуется, чтобы контроллер знало сеансе, чтобы я мог выполнить любую настройку транзакции в сеансе перед любым действием контроллера и любое сохранение в базе данных после действия, используя что-то вроде (например, методы ActionFilterAttribute BeforeExecution или AfterExecuted или события BeginRequest / EndRequest в MvcApplication.
Поэтому я думаю, что мне нужно передать текущий сеанс NHibernate как контроллеру, так и репозиторию, чтобы я мог действовать в сеансе, когда на контроллере происходят определенные действия / результаты.
Это единственный способ, которым я могу пойти по этому поводу?
Я читал блоги Айенде и целый ряд различных способов сделать это, но в случае использования шаблона хранилища это почти похоже надолжен. Я надеялся, что смогуНастройка Nhibernate / StructureMap осуществляется наиболее гибким способом, поэтому, за исключением определения конфигурации FluentNhibernate для конкретного проекта, для добавления его в другой проект MVC будет очень минимальное количество проводов.