如何在Linqpad中设置命令超时?

时间:2011-12-09 16:47:43

标签: timeout linqpad command-timeout

我最近开始使用LinqPad,并购买了Autocomplete选项,我非常喜欢它。这是一个很好的产品!

我想问一下我是否有办法控制在LinqPAD中查询SQL Server数据库时使用的命令超时(我使用的是c#语句)?我无法看到我们可以访问实际连接字符串的位置,并且我有一些大型查询报告超时。似乎超时在30秒时被硬编码。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:15)

我已经运行了几分钟的查询,并且从未执行过命令。也就是说,这就是你改变它的方式......


您在UserQuery内执行的所有工作。 CommandTimeout是该属性的属性。

this.CommandTimeout = 60;

查看this下的所有属性。它可以让您深入了解您可以做的一些事情。

答案 1 :(得分:9)

正如@DaveShaw's answer中提到的,当使用“常规”连接在LinqPAD中查询SQL Server数据库时,您可以使用:

this.CommandTimeout = 60

但是,LinqPad connects to DB using an EF-library时无法使用此属性。 使用this.CommandTimeout会导致:

  

'UserQuery'不包含'CommandTimeout'的定义,并且没有扩展方法'CommandTimeout'接受类型'UserQuery'的第一个参数可以找到(按F4添加using指令或汇编引用)

有些令人费解的答案about EF time-outs in general让我在EF连接上使用了这个:

(this as IObjectContextAdapter).ObjectContext.CommandTimeout = 60;

答案 2 :(得分:1)

对于Entity Framework Core,连接使用以下属性代替。
this.Database.SetCommandTimeout(120);