Подтвердить что ты не робот

Настройка CommandTimeout в Dapper.NET?

Я пытаюсь запустить резервное копирование SQL через хранимую процедуру через Dapper (остальное мое приложение использует 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?

4b9b3361

Ответ 1

Да, существует несколько версий функции 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

Ответ 2

Пример из исходного вопроса с принятым ответом добавлен, если кто-то захочет его. (Тайм-аут установлен на 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);
}