如何在Linq2Entities中增加超时时间?

9
我正在对一个视图进行基本选择。不幸的是,结果可能很慢,我会间歇性地出现超时错误。如何增加超时时间?
使用.NET 3.5,Sql Server 2000,Linq2Entities
我正在使用非常基本的查询 List<MyData> result = db.MyData.Where(x.Attribute == search).ToList(); 在这里修复查询以使其在数据库端更快不是一个选项。
具体错误:“超时已过期。操作完成前超时时间已到或服务器未响应。”
更新:我更喜欢仅为此查询更改它。

嗯,为什么不修复查询呢?你可能缺少了一个索引。 - Craig Stuntz
1
“修复查询以使其在数据库端更快并不是一个选项。”- 这就是为什么我加入了这行代码。在这种情况下不可能实现。 - Russell Steen
1个回答

9
你可以在连接字符串中设置超时时间。 编辑(新): 事实证明,有两个不同的超时概念。连接超时用于确定是否可以建立连接。对象上下文中的CommandTimeout属性控制命令的超时时间。只需将其设置为较高的值,就不会以任何方式影响短时间运行的查询。

这是唯一的方法吗?我宁愿只对这一个查询进行更改。在其他查询中,我宁愿提前超时,因为它们非常快,较长的运行时间会导致连接失败。 - Russell Steen
@Russell Steen:我已经更新了我的答案,提供另一种选择。 - Klaus Byskov Pedersen
1
(MyDbContextSubclass as IObjectContextAdapter)。ObjectContext.CommandTimeout = 300; - jocull
1
将CommandTimeout设置为0意味着它将无限期地等待命令完成。 - Josh Gallagher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接