21

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

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

提前感谢您的帮助!

4

3 回答 3

18

我已经运行了几分钟且从未出现命令超时的查询。也就是说,这就是你如何改变它......


您在UserQuery. 是它的CommandTimeout一个属性。

this.CommandTimeout = 60;

查看下的所有属性this。它使您可以很好地了解您可以做的一些事情。

于 2011-12-09T16:52:51.997 回答
11

正如@DaveShaw 使用“常规”连接在 LinqPAD 中查询 SQL Server 数据库时的回答中所述,您可以使用:

this.CommandTimeout = 60

但是,当LinqPad 使用 EF-library 连接到 DB时,此属性不可用。使用this.CommandTimeout结果:

“UserQuery”不包含“CommandTimeout”的定义,并且找不到接受“UserQuery”类型的第一个参数的扩展方法“CommandTimeout”(按 F4 添加 using 指令或程序集引用)

一些令人费解的关于 EF 超时的答案通常导致我在 EF 连接上使用它:

(this as IObjectContextAdapter).ObjectContext.CommandTimeout = 60;
于 2013-03-21T09:37:31.110 回答
3

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

于 2020-10-27T21:12:24.307 回答