NHibernate/NInject - 更新不会在用户提交表单后立即执行

NHibernate/NInject - Update is not executed right after user submit a form

我在一个使用以下框架的项目中

问题是用户更新实体并提交表单后,他必须等待大约 20 秒才能加载正确的数据。同样这次更改被保存到数据库中(SQL 服务器)

我们在 RequestScope 中管理了 NHibernate ISession 对象,但发现当 MVC 从编辑重定向到列表屏幕时,停用方法没有调用

下面是 NHibernate NInject 模块的主要部分:

加载方式:

Bind<ISession>()
            .ToMethod(c => c.Kernel.Get<ISessionFactory>().OpenSession(interceptor))
            .InRequestScope()
            .OnActivation(SetupSession())
            .OnDeactivation(CommitOrRollback)


private Action<ISession> SetupSession()
    {
        _logger.Debug("OnActivation");

        return s =>
        {
            s.BeginTransaction(IsolationLevel.ReadCommitted);
            s.FlushMode = FlushMode.Commit;
        };
    }

    private void CommitOrRollback(ISession session)
    {
        _logger.Debug("OnDeactivation");

        if (!session.Transaction.IsActive)
        {
            return;
        }

        try
        {
            session.Transaction.Commit();
            session.Flush();
            _logger.Debug("Session committed successfully");
        }
        catch (Exception ex)
        {
            session.Transaction.Rollback();
            throw new CommitDataException(ex);
        }
    }

感谢任何建议!

在添加更多日志的一些调查之后,我们对我们实施的代码充满信心。然后我们检测到有新版本 Ninject.Web.Common

从 Ninject.Web.Common 3.2.0.0 升级到

3.2.3.0

并且应用程序有效。将检查库中已更改的内容。