为啥 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 上的实体框架会忽略超时?的主要内容,如果未能解决你的问题,请参考以下文章
如果删除 AsNoTraking,速度会更快 - 为啥? - 实体框架 5.0 - SQL Server 2008 R2