在Dapper.NET中调整CommandTimeout?

.net c# dapper timeout

我正在尝试通过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设置?

一般承认的答案

是的,Execute功能有多个版本。其中一个(或多个)包含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);
}


许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因