我最近开始使用LinqPad,并购买了Autocomplete选项,我非常喜欢它。这是一个很好的产品!
我想问一下我是否有办法控制在LinqPAD中查询SQL Server数据库时使用的命令超时(我使用的是c#语句)?我无法看到我们可以访问实际连接字符串的位置,并且我有一些大型查询报告超时。似乎超时在30秒时被硬编码。
提前感谢您的帮助!
答案 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);