4

如何使用 Castle ActiveRecord 设置 Session.DBCommand.CommandTimeOut NHibernate 默认值?

此配置行不起作用。

<activerecord >
  <config>
      <add key="command_timeout" value="60"/>
  </config>
</activerecord>

编辑:我需要一些代码来在创建命令时更改 CommandTimeOut 值,那么反射来动态设置值呢?还是 PostSharp?有人知道怎么做吗?

4

1 回答 1

0

在 Fluent Initialise 方法中,您必须像这样传递几个参数,

public static void Initialise(string connStr)
    {
        _Factory = Fluently.Configure().Database(
                MsSqlConfiguration.MsSql2005
                .ConnectionString(connStr))
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<SessionHandler>())
                .ExposeConfiguration(cfg =>
                {
                    // This will set the command_timeout property on factory-level
                    cfg.SetProperty(NHibernate.Cfg.Environment.CommandTimeout, "180");
                    // This will set the command_timeout property on system-level
                    NHibernate.Cfg.Environment.Properties.Add(NHibernate.Cfg.Environment.CommandTimeout, "180");

                })
                .BuildSessionFactory();
    }

注意每个属性后面的“180”,这会将命令超时设置为 3 分钟

编辑:刚刚注意到您想通过基本记录在记录上执行此操作,哎呀!

于 2017-01-11T11:57:51.763 回答