为啥 SQL Express 上的实体框架会忽略超时?

Posted

技术标签:

【中文标题】为啥 SQL Express 上的实体框架会忽略超时?【英文标题】:Why does Entity Framework over SQL Express ignore timeout?为什么 SQL Express 上的实体框架会忽略超时? 【发布时间】:2012-01-19 07:40:54 【问题描述】:

我有以下连接字符串:

metadata=res:///Database.csdl|res:///Database.ssdl|res://*/Database.msl;provider=System.Data.SqlClient;provider 连接string="Data Source=.\SQLEXPRESS;AttachDbFilename='Database.mdf';Integrated Security=True;User Instance=True;Connection Timeout=300;"

我希望这个连接字符串永远不会超时(因为它是 5 分钟)。但是,在对实体框架的非常简单的 database.table.Count() 调用中,它会在 10 秒内失败,并出现“超时”异常。 为什么实体框架会忽略 SQL 超时? Entity Framework 如何设置超时时间?

【问题讨论】:

Entity Framework Timeouts 的可能重复项 【参考方案1】:

连接超时指定等待连接所花费的时间。它不会影响 查询 在超时之前可以花费的时间量。

为此,您需要在您使用的任何数据库上下文类中搜索 CommandTimeout 属性。

【讨论】:

【参考方案2】:

连接超时是尝试连接到未执行查询的数据库服务器时等待的时间

【讨论】:

以上是关于为啥 SQL Express 上的实体框架会忽略超时?的主要内容,如果未能解决你的问题,请参考以下文章

为啥实体框架会生成嵌套 SQL 查询?

为啥使用参数化查询或实体框架会阻止 sql 注入?

如果删除 AsNoTraking,速度会更快 - 为啥? - 实体框架 5.0 - SQL Server 2008 R2

JSONP - express:为啥浏览器会忽略请求?

实体框架和 SQL Server Express 瓶颈

将实体框架连接字符串转换为 SQL Server Express