Настройка 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?
Ответы
Ответ 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);
}