Как установить значение по умолчанию NHibernate CommandTimeOut по умолчанию - PullRequest
4 голосов
/ 17 ноября 2011

Как я могу установить значение по умолчанию Siber.DBCommand.CommandTimeOut NHibernate с Castle ActiveRecord?

эта строка конфигурации не работает.

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

edit: мне нужен код, которыйизменяет значение CommandTimeOut при создании команды, как насчет отражения, чтобы динамически установить значение?или PostSharp?кто-то знает как?

1 Ответ

0 голосов
/ 11 января 2017

В методе инициализации Fluent вы должны передать пару параметров, так что

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 минуты

edit: только что заметил, что вы хотите сделать это для записи по записи base, whoops!

...