【问题标题】:Rhino UnitOfWorkApplication + Castle Automatic Transaction Management application does not flush automatically on request endRhino UnitOfWorkApplication + Castle 自动事务管理应用程序不会在请求结束时自动刷新
【发布时间】:2010-10-15 16:10:20
【问题描述】:

我正在构建基于 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();”时行一切正常 - 新用户保留在数据库中。但是,如果我不明确刷新会话,则不会保留任何内容。

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

【问题讨论】:

  • 我只是在想,如果我正确设置了 ATM - DefaultTransactionManager 可以吗?我将设施 AutomaticTransactionManagement.TransactionFacility 和 Castle.Services.Transaction.DefaultTransactionManager 注册为我应用的 IoC 容器中的一个组件。

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


【解决方案1】:

我刚刚注册了 RhinoTransactionFacility 而不是原来的 Castle ATM 设施 + DefaultTransactionManager 并且一切都开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    相关资源
    最近更新 更多