在Dapper.NET中调整CommandTimeout?
我试图通过存储过程通过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来设置?
是的,执行function有多个版本。 其中一个(或多个)包含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); }