我最近开始使用 LinqPad,并购买了 Autocomplete 选项,我真的很喜欢它。这是一个优秀的产品!
我想问我是否有办法控制在 LinqPAD 中查询 SQL Server 数据库时使用的命令超时(我使用的是 c# 语句)?我看不到我们在哪里可以访问实际的连接字符串,而且我有一些大型查询报告正在超时。超时似乎是硬编码为 30 秒。
提前感谢您的帮助!
我最近开始使用 LinqPad,并购买了 Autocomplete 选项,我真的很喜欢它。这是一个优秀的产品!
我想问我是否有办法控制在 LinqPAD 中查询 SQL Server 数据库时使用的命令超时(我使用的是 c# 语句)?我看不到我们在哪里可以访问实际的连接字符串,而且我有一些大型查询报告正在超时。超时似乎是硬编码为 30 秒。
提前感谢您的帮助!
我已经运行了几分钟且从未出现命令超时的查询。也就是说,这就是你如何改变它......
您在UserQuery
. 是它的CommandTimeout
一个属性。
this.CommandTimeout = 60;
查看下的所有属性this
。它使您可以很好地了解您可以做的一些事情。
正如@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;
对于 Entity Framework Core 连接,改为使用以下属性。
this.Database.SetCommandTimeout(120);