首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Dapper.NET中调整CommandTimeout?

在Dapper.NET中调整CommandTimeout?
EN

Stack Overflow用户
提问于 2012-01-10 04:36:59
回答 4查看 65.4K关注 0票数 109

我正在尝试通过Dapper的存储过程运行SQL备份(我的应用程序的其余部分使用Dapper,所以我更喜欢让这一部分也通过它运行)。在CommandTimeout生效之前,它工作得很好。

代码语言:javascript
复制
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来设置?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-10 05:22:45

是的,Execute函数有多个版本。其中一个(或多个)参数包含commandTimeout参数:

代码语言:javascript
复制
public static int Execute(this IDbConnection cnn, string sql, 
                dynamic param = null, IDbTransaction transaction = null, 
                            int? commandTimeout = null, CommandType? commandType = null)

摘自SqlMapper.cs

票数 119
EN

Stack Overflow用户

发布于 2015-08-14 02:38:41

添加了接受答案的原始问题的示例,以防任何人想要它。(超时设置为60秒):

代码语言:javascript
复制
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);
}
票数 66
EN

Stack Overflow用户

发布于 2020-06-30 18:25:48

不需要为所有查询/Db调用设置命令超时。您可以像下面这样全局设置它。

代码语言:javascript
复制
Dapper.SqlMapper.Settings.CommandTimeout = 0;

可以在应用程序加载时或在数据库类构造函数中初始化此静态属性。

这有助于消除重复,如果您以后决定更改它,只需在一个地方更改一次。

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8794858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档