如何设置 short/low DbContext CommandTimeout
How to set a short/low DbContext CommandTimeout
当我尝试为 CommandTimeout 设置较短的超时时,操作确实超出了我要求它尽量保持在以下的值。比如我在实例化的时候,还设置了CommandTimeout.
public MyContext(string connString, int? CommandTimeout = null) : base(connString) { base.Database.CommandTimeout = CommandTimeout; }
然后我随后做了一个简单的连接测试
public bool CheckConnection()
{
return base.Database.Exists();
}
如果连接配置正确,我知道它会非常快,所以当它配置不正确时,我真的很想将它的超时设置得非常低,比如 3 秒,但事实并非如此。相反,它 returns 在典型的 30 秒到分钟的跨度内。
如何将连接 attempt/timeout 限制为我知道可以成功连接的较低值?
如果问题出在建立连接上,Database.ConnectionTimeout
属性 就是您所追求的。否则,您的 CommandTimeout
方法应该适用于长 运行 命令(您是否验证了该值实际上是通过断点或 IDbCommandInterceptor
设置的?)
当我尝试为 CommandTimeout 设置较短的超时时,操作确实超出了我要求它尽量保持在以下的值。比如我在实例化的时候,还设置了CommandTimeout.
public MyContext(string connString, int? CommandTimeout = null) : base(connString) { base.Database.CommandTimeout = CommandTimeout; }
然后我随后做了一个简单的连接测试
public bool CheckConnection()
{
return base.Database.Exists();
}
如果连接配置正确,我知道它会非常快,所以当它配置不正确时,我真的很想将它的超时设置得非常低,比如 3 秒,但事实并非如此。相反,它 returns 在典型的 30 秒到分钟的跨度内。
如何将连接 attempt/timeout 限制为我知道可以成功连接的较低值?
如果问题出在建立连接上,Database.ConnectionTimeout
属性 就是您所追求的。否则,您的 CommandTimeout
方法应该适用于长 运行 命令(您是否验证了该值实际上是通过断点或 IDbCommandInterceptor
设置的?)