如何使用Entity Framework减少连接超时?

Bla*_*ine 5 sql-server entity-framework

我希望快速建立与SQL Server的数据库连接失败.如何减少超时?我已经尝试添加Connection Timeout=1我的连接字符串,但这似乎没有什么区别.

使用Connection Timeout=500,超时大约需要8分30秒.这是预料之中的.使用时Connection Timeout=1,超时大约需要40秒,这比预期的要长.

我找到了这个EntityConnection.ConnectionTimeout属性,但它是只读的.我还能做些什么来减少这个超时吗?这是实体的问题吗?

更新:这是我的连接字符串.超时仍需要约40秒.

<add name="KofaxAdminToolsEntities" connectionString="metadata=res://*/DB.Model.KofaxAdminTools.csdl|res://*/DB.Model.KofaxAdminTools.ssdl|res://*/DB.Model.KofaxAdminTools.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MY_DATASOURCE;initial catalog=MY_CATALOG;persist security info=True;user id=MY_USER;password=MY_PASSWORD;MultipleActiveResultSets=True;App=EntityFramework;Connection Timeout=1&quot;" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

更新2:所以我发现超时是tcp超时,而不是sql连接超时.如果我的机器能够到达主机,@marc_s解决方案就可以了,但是,由于我无法访问该主机,因此tcp超时发挥作用.有谁知道如何减少tcp超时SqlConnection

Iro*_*n84 0

将以下代码放入 DbContext 类的构造函数中:

((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 1;
Run Code Online (Sandbox Code Playgroud)

  • 这就是**命令超时** - 正在运行的命令在超时之前可以用完的时间跨度。这与**连接超时**(打开数据库的**连接**所允许的最长时间)无关** (4认同)