[英]Linq-to-SQL Timeout
我一直在我的一个页面上收到一个错误,linq查询已超时,因为它花了太长时间。 它使页面无法使用。
这是一个报告页面,每天只能由管理员访问一次。 根本不可避免地削减这个查询,它只需要对大量数据进行排序。
解决这个问题的解决方法我已经阅读过,通过增加数据上下文中的超时属性,但我想避免这样做,因为它会为整个网站改变它。
有没有办法为单个页面设置更长的时间?
刚刚找到了智能感知的答案:
using (MainContext db = new MainContext())
{
db.CommandTimeout = 3 * 60; // 3 Mins
}
这就是如何在每个查询的基础上增加查询的时间,因为它应该修改连接字符串或数据上下文。
@汤姆Gullens答案并没有为我工作在EF6
我不得不深入到DbContext
上的DbContext
Ecom.Database.CommandTimeout = 120;
希望这能为您节省一些时间。
汤姆古伦的答案很好。
另一位受访者提到在连接字符串中设置连接超时。
我想提醒一下,连接字符串的连接超时属性不是命令超时。 当你想到它时,它会更加明显。 这是一个常见的错误。
这是.Net 4.5的最新语法。
MyDbContext context = new MyDbContext();
context.Database.SetCommandTimeout(300);
在增加SQL超时之前,总是值得评估索引策略。 根据我的经验,很少有针对索引良好的表和列的查询超时。
德欧文
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.