0
我在使用nhibernate中的存儲庫模式。 在一個asp.net mvc應用程序中。 我有一個HTTP模塊,即:如何在單個請求中提交併啓動新的事務?
beginRequest it calls session.beginTransaction();
EndRequest it calls session.Transaction.Commit();
這是罰款的95%的時間。
我有,我需要做一個請求以下的情況下:
List<User> users = factory.getUsers();
// update users
// commit transaction
// load users from the db again
我是否應該打電話:
factory.Session.Transaction.Commit();
factory.Session.BeginTransaction();
我知道這是對使用的原因之一存儲庫模式,並在HttpModule會話開始/結束,但無論如何,這就是我是如何做到這一點:)
什麼是我的o ptions?
Uptate 所以基本上我現在有:
一個頁面請求將是這樣的:
BeginRequest: Session.BeginTransaction();
userlist.aspx:
// code to fetch users from the db
// update users
Session.Transaction.Commit();
Session.BeginTransaction();
// code to fetch recently commited users form db
EndRequest: Session.Transaction.Commit();
上面似乎並正確嗎?
我想我應該在調用commit之前先檢查一下是否有當前事務並重新開始?