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

.net c# dapper timeout

Вопрос

Я пытаюсь запустить 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?

Принятый ответ

Да, существует несколько версий функции 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
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему