首页 / .NET / 正文

[Dapper].NET/C#中使用Dapper时如何处理查询超时的问题?

10332 发布于: 2018-01-21 读完约需3分钟

[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中是否也可以设置查询超时的选项呢?

方案一

答案是肯定的
DapperExcute 方法有多个版本的重载,其中就包含了设置查询超时时间的选项,比如:

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秒。

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [Dapper].NET/C#中使用Dapper如何处理多层级实体映射的问题?

下一篇: [Dapper].NET/C#中使用Dapper如何动态创建查询参数?

本文永久链接码友网 » [Dapper].NET/C#中使用Dapper时如何处理查询超时的问题?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册