在Dapper.NET中如何调整CommandTimeout?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

我试图通过Dapper通过存储过程运行SQL备份(我的应用程序的其余部分使用Dapper,所以我宁愿让这部分也通过它运行)。在CommandTimeout启动之前它工作得很好。

using (var c = SqlConnection(connstring))
{
    c.Open();
    var p = new DynamicParameters();
    // fill out p

    c.Execute("xp_backup_database", p, commandType: CommandType.StoredProcedure);
}

我知道的唯一CommandTimeout设置是在SqlCommand中。有没有通过Dapper设置的方法?

提问于
用户回答回答于

是的,执行功能有多个版本。其中一个(或多个)包含commandTimeout参数:

public static int Execute(this IDbConnection cnn, string sql, 
                dynamic param = null, IDbTransaction transaction = null, 
                            int? commandTimeout = null, CommandType? commandType = null)

取自SqlMapper.cs

用户回答回答于

添加了接受答案的原始问题示例,以防有人需要。(超时设置为60秒):

using (var c = SqlConnection(connstring))
{
    c.Open();
    var p = new DynamicParameters();
    // fill out p

    c.Execute("xp_backup_database", p, commandTimeout: 60, commandType: CommandType.StoredProcedure);
}

扫码关注云+社区