sh-*_*eta 75 .net c# timeout dapper
我正在尝试通过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);
}
Run Code Online (Sandbox Code Playgroud)
我知道的唯一CommandTimeout设置是在SqlCommand中.有没有办法通过Dapper设置?
jza*_*ruk 88
是的,Execute功能有多个版本.其中一个(或多个)包含commandTimeout参数:
public static int Execute(this IDbConnection cnn, string sql,
dynamic param = null, IDbTransaction transaction = null,
int? commandTimeout = null, CommandType? commandType = null)
Run Code Online (Sandbox Code Playgroud)
Adr*_*arr 49
原始问题的示例和已接受的答案,如果有人想要的话.(超时设置为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);
}
Run Code Online (Sandbox Code Playgroud)
Moz*_*eeb 27
无需为所有查询/数据库调用设置命令超时。您可以像下面这样全局设置。
Dapper.SqlMapper.Settings.CommandTimeout = 0;
Run Code Online (Sandbox Code Playgroud)
您可以在应用程序加载时或在数据库类构造函数中初始化此静态属性。
这有助于消除重复,如果您决定稍后更改,只需更改一次。
我能够使用连接解决我的问题。查询直接设置超时
int timeOutInSeconds = 60;
.
.
.
result = conn.Query<list>(stringQuery, new {parameters, ..}, null, true, timeOutInSeconds).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39531 次 |
| 最近记录: |