我在ASP.NET MVC 2,NHibernate和DDD中創建了一個解決方案。我正在使用一個半CQRS類型的模型。ASP.NET MVC 2,Nhibernate和跨層交易
ASP.NET控制器發出驗證傳遞消息到服務層,其更新的域對象的狀態。 我有我的域名調度「事件」,然後這些被「事件處理程序」捕獲,他們對其採取行動。每個這些事件處理程序都可以訪問存儲庫層,並可以提交一個域對象狀態。
事件處理程序也可以直接插入記錄的使用(非NHibernate的)報告信息庫基礎表。事件處理程序也可以執行非數據庫相關操作,如發送電子郵件。
事件處理程序還可以更改對象的狀態,從而創建一組新事件。
我怎樣才能保證一個asp.net請求過程中發生的所有數據庫操作是一個單一的事務中。 我一直在閱讀一些博客(如Kevin Williams,Matt Wrock和Davy Brion),並且得到了如何開始在開始和結束請求(再次,我將使用此結構圖),但不知道該交易是如何維持一個Session對象的信息。這是因爲開始和結束請求可能在不同的線程上被調用。
我的存儲庫類在其參數中使用NHibernate ISession。如果我將ISession創建爲Hybrid Scope(StructureMap),將確保在請求期間StructrueMap傳遞的ISession參數保持不變。
請告知,並讓我知道如果我的問題不清楚。
謝謝
月
的三月
@Thank你。我正在通過鏈接。 – TheMar 2011-03-27 17:06:34
我接受了這個答案,因爲這兩個鏈接提供了很好的信息,開始在我的UoW上工作 – TheMar 2011-04-07 18:12:47