在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合法嗎? 是的,了解原因