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 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 分に設定されます。

編集:レコードベーシックでレコードでこれをやりたいことに気づきました、おっと!

于 2017-01-11T11:57:51.763 に答える