我正在嘗試通過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)
原始問題的示例和已接受的答案,如果有人想要的話。 (超時設置為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);
}