2010-03-16 91 views
9

我正在做一个针对视图的基本选择。不幸的是,结果可能会很慢,我会间歇性地收到超时错误。我怎样才能延长超时时间?如何增加Linq2Entities的超时时间?

使用.NET 3.5,SQL Server 2000中,Linq2Entities

我使用的是非常基本的查询List<MyData> result = db.MyData.Where(x.Attribute == search).ToList();

固定的查询,以便它在数据库方面更快的是不是一个不错的选择。

准确的错误:“Timeout expired。超时时间已过,但操作完成或服务器没有响应。”

更新:我宁愿只更改它为这一个查询。

+0

嗯,为什么不修复查询,而不是?你可能错过了一个索引。 – 2010-03-16 13:10:01

+1

“修复查询,以便在数据库端更快,这里不是一个选项。” - 这就是为什么我把这条线放在那里。在这种情况下这是不可能的。 – 2010-03-16 13:19:39

回答

9

您可以在您的connection string中设置超时时间。

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

+0

这是唯一的方法吗?我宁愿只是为了这个查询而改变它。在其他查询中,我宁愿让它尽快超时,因为它们速度非常快,而长时间运行意味着无法连接。 – 2010-03-16 13:07:12

+0

@Russell Steen:我用另一个选项更新了我的答案。 – 2010-03-16 13:11:39

+0

@Russell Steen:我已经更新了我的答案。 – 2010-03-16 13:17:05

相关问题