如何设置NHibernate CommandTimeOut的默认值

本文关键字:NHibernate CommandTimeOut 默认值 设置 何设置 | 更新日期: 2023-09-27 18:14:53

如何设置一个Session.DBCommand.CommandTimeOut NHibernate默认值与城堡ActiveRecord?

这个配置行不工作。

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

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

如何设置NHibernate CommandTimeOut的默认值

在Fluent initialize方法中,你必须传递两个参数,

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

编辑:刚刚注意到你想在一个记录一个记录的基础上做这个,哎呀!