【问题标题】:How to set a default NHibernate CommandTimeOut default value如何设置默认的 NHibernate CommandTimeOut 默认值
【发布时间】:2011-12-31 08:46:12
【问题描述】:

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

此配置行不起作用。

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

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

【问题讨论】:

    标签: c# nhibernate reflection postsharp command-timeout


    【解决方案1】:

    在 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 分钟

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 2012-07-31
      • 2014-05-15
      相关资源
      最近更新 更多