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

.NET 作者: Rector 571阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

[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时如何处理查询超时的问题?

发布于: 2018-01-21 09:12:13
分享扩散:

文章评论

获取验证码