我正在使用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
秒之后超时,这是默认超时。
有什么想法吗?
答案 0 :(得分:13)
可以在OrmLite中使用OrmLiteConfig.CommandTimeout
设置超时,因为全局配置在StartUp上可以是statically configured一次:
OrmLiteConfig.CommandTimeout = 666;
或者您可以使用以下命令将CommandTimeout作用域设置为特定的数据库连接:
using (var db = DbFactory.Open())
{
db.SetCommandTimeout(60);
db.Select(...);
}