如何在OrmLite ServiceStack中增加命令超时?

时间:2014-09-18 09:11:03

标签: c# .net sql-server connection-string ormlite-servicestack

我正在使用ServiceStack OrmLite SqlServer v3.9.71并具有以下连接字符串:

<add key="ConnStr" value="Data Source=my-db;Initial Catalog=Users;Integrated Security=SSPI;Connection Timeout=666"/>

并使用以下内容运行查询,需要2-3分钟才能返回:

using (Db)
{
    var result = new ResultDto();

    Parallel.Invoke(
       () => { result.StatOne = Db.Dictionary<DateTime, int>(query1); },
       () => { result.StatTwo = Db.Dictionary<DateTime, int>(query2); }
    );

    return result;
}

在Db对象上设置断点时,我可以看到连接超时为666但我无法在每次运行上面时弄清楚如何设置/增加命令超时它在30秒之后超时,这是默认超时。

有什么想法吗?

1 个答案:

答案 0 :(得分:13)

可以在OrmLite中使用OrmLiteConfig.CommandTimeout设置超时,因为全局配置在StartUp上可以是statically configured一次:

OrmLiteConfig.CommandTimeout = 666;

或者您可以使用以下命令将CommandTimeout作用域设置为特定的数据库连接:

using (var db = DbFactory.Open())
{
    db.SetCommandTimeout(60);
    db.Select(...);
}