如何设置默认的NHibernate CommandTimeOut默认值

时间:2011-11-17 13:37:33

标签: c# nhibernate reflection postsharp command-timeout

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

此配置行不起作用。

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

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

1 个答案:

答案 0 :(得分:0)

在Fluent Initialise Method中,你必须传递几个参数,

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

编辑:刚刚注意到你想通过记录基本的记录来做这件事,哎呀!