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之前先检查一下是否有当前事务并重新开始?