Rhino UnitOfWorkApplication + Castle自动事务管理应用程序不会在请求结束时自动刷新

时间:2009-03-26 10:34:01

标签: asp.net-mvc nhibernate flush rhino-commons unitofworkapplication

我正在构建基于UnitOfWorkApplication的ASP.Net MVC应用程序,我想使用Castle ATM工具。目前我遇到了在请求结束时刷新会话的问题。我的服务类(在我的控制器操作方法中调用)如下所示:

[Transactional]
public class UserAdminService : IUserAdminService
{

    [Transaction(TransactionMode.Requires)]
    public User CreateNewUser(string username, string password, string firstName, string lastName)
    {
        var u = new User(username)
                    {
                        PasswordHash = GetPasswordHash(password),
                        FirstName = firstName,
                        LastName = lastName
                    };
        userRepo.Save(u);
        //UnitOfWork.CurrentSession.Flush();
        return u;
    }

当我取消注释“UnitOfWork.CurrentSession.Flush();” row一切正常 - 新用户持久存在于DB中。但是,如果我没有明确地刷新会话,那么什么都不会持续存在。

UnitOfWorkApplication + ATM应该在请求结束时刷新更改AFAIK - 是吗?有没有人有建议我应该在没有明确session.Flush()调用的情况下尝试使其工作?

1 个答案:

答案 0 :(得分:1)

我刚刚注册了RhinoTransactionFacility而不是原始的Castle ATM工具+ DefaultTransactionManager,一切都开始工作了。