Linq-to-SQL超时

Tom*_*len 45 c# asp.net timeout linq-to-sql

我一直在我的一个页面上收到一个错误,linq查询已超时,因为它花了太长时间.它使页面无法使用.

这是一个报告页面,每天只能由管理员访问一次.根本不可避免地削减这个查询,它只需要对大量数据进行排序.

解决这个问题的解决方法我已经阅读过,通过增加数据上下文中的超时属性,但我想避免这样做,因为它会为整个网站改变它.

有没有办法为单个页面设置更长的时间?

Tom*_*len 70

刚刚找到了智能感知的答案:

using (MainContext db = new MainContext())
{
    db.CommandTimeout = 3 * 60; // 3 Mins
}
Run Code Online (Sandbox Code Playgroud)

这就是如何在每个查询的基础上增加查询的时间,因为它应该修改连接字符串或数据上下文.

  • 如果要设置超时无限期,请将其设置为零. (4认同)

Mat*_*ius 11

@Tom Gullens的回答对我不起作用 EF6

我不得不深入到数据库 DbContext

Ecom.Database.CommandTimeout = 120;

希望这能为您节省一些时间.

  • linq-to-sql!= EF (12认同)

Zan*_*ken 5

这是 .Net 4.5 的最新语法。

    MyDbContext context = new MyDbContext();
    context.Database.SetCommandTimeout(300);
Run Code Online (Sandbox Code Playgroud)