【问题标题】: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 分钟
编辑:刚刚注意到您想通过基本记录在记录上执行此操作,哎呀!