繁体   English   中英

Linq-to-SQL超时

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM