首页 / C# / c# – 如何更改查询的超时
c# – 如何更改查询的超时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何更改查询的超时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1663字,纯文字阅读大概需要3分钟。
内容图文
![c# – 如何更改查询的超时](/upload/InfoBanner/zyjiaocheng/812/e6bbd52081f3437cb02199c8555759fd.jpg)
对于具有许多记录的查询,我有超时问题.如何更改查询超时?
我尝试以这种方式更改超时连接,但它不起作用:
connection.ConnectionTimeout = 60; //不工作(准备好了)
类:
public abstract class RepositoryBase<TEntity> : IRepositoryBase<TEntity>, IDisposable where TEntity : class
{
protected SqlConnection _connection;
protected string _connectionString;
public RepositoryBase(string connectionString)
{
_connectionString = connectionString;
SqlConnection connection = new SqlConnection(connectionString);
if (connection.State == ConnectionState.Closed)
connection.ConnectionTimeout = 60; // not working (ready)
connection.Open();
_connection = connection;
}
public List<T> GetEntitiesByQuery<T>(string Query)
{
using (var connection = _connection)
{
try
{
var entities = connection.Query<T>(Query);
return entities.ToList();
}
catch (Exception ex)
{
throw ex;
}
finally
{
connection.Close();
}
}
}
}
解决方法:
您需要设置CommandTimeout属性:
The time (in seconds) to wait for the command to execute. The default value is 30 seconds.
如何设置取决于所使用的数据访问技术.
对于普通的ADO.NET:
IDbCommand cmd = ...;
cmd.CommandTimeout = 120; // 2 min
对于EF6:
DbContext db = ...;
db.Database.CommandTimeout = 120; // 2 min
但看起来你正在使用Dapper.查询< T>使用的方法目前有以下签名:
public static IEnumerable<T> Query<T>(
this IDbConnection cnn,
string sql,
object param = null,
IDbTransaction transaction = null,
bool buffered = true,
int? commandTimeout = null,
CommandType? commandType = null
)
如您所见,有许多可选参数,其中之一是您需要的commandTimeout.所以你可以使用这样的东西:
var entities = connection.Query<T>(Query, commandTimeout: 120);
或者,您可以为所有查询设置默认超时:
SqlMapper.Settings.CommandTimeout = 120; // 2 min
内容总结
以上是互联网集市为您收集整理的c# – 如何更改查询的超时全部内容,希望文章能够帮你解决c# – 如何更改查询的超时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。