[Dapper].NET/C#中使用Dapper时如何处理查询超时的问题?
问题描述
当前使用Dapper调用存储过程中的SQL语句进行数据备份的任务,但出现 CommandTimeout 执行超时的问题,如:
using (var c = SqlConnection(connstring))
{
c.Open();
var p = new DynamicParameters();
// fill out p
c.Execute("xp_backup_database", p, commandType: CommandType.StoredProcedure);
}
SqlCommand中有处理 CommandTimeout的设置,Dapper中是否也可以设置查询超时的选项呢?
方案一
答案是肯定的Dapper
的 Excute
方法有多个版本的重载,其中就包含了设置查询超时时间的选项,比如:
public static int Execute(this IDbConnection cnn, string sql,
dynamic param = null, IDbTransaction transaction = null,
int? commandTimeout = null, CommandType? commandType = null)
其中的:commandTimeout
参数即为查询超时时间
具体的调用方法:
using (var c = SqlConnection(connstring))
{
c.Open();
var p = new DynamicParameters();
c.Execute("xp_backup_database", p, commandTimeout: 60, commandType: CommandType.StoredProcedure);
}
以上代码中,我们将Dapper的 Exceute
查询方法超时时间设置成了60秒。
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册