如何在连接字符串中设置实体框架 4 CommandTimeout?
Posted
技术标签:
【中文标题】如何在连接字符串中设置实体框架 4 CommandTimeout?【英文标题】:How to set Entity framework 4 CommandTimeout in connection string? 【发布时间】:2013-06-09 20:20:04 【问题描述】:是否可以在app.config的连接字符串中指定commandTimeout?
根据这个 SO 问题:Entity Framework with mysql - Timeout Expired while Generating Model 以下应该可以工作:
<add name="DataEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string="data source=XXXX;initial catalog=XXXXX2;persist security info=True;user id=XXXXX;password=XXXXX;multipleactiveresultsets=True;App=EntityFramework;Default Command Timeout=12;"" providerName="System.Data.EntityClient" />
但是,它不起作用 - 抛出异常,指出 Default Command Timeout
不是连接字符串的已知部分。
如果我使用以下代码直接在代码中执行此操作,则可以正常工作:
var db = new DataEntities(); // ObjectContext
db.CommandTimeout = 1;
有人知道如何在配置中使用连接字符串或其他本机选项设置 commandTimeout 吗?
谢谢。
【问题讨论】:
可能值得在问题中添加 MySQL 标签,因为这似乎是 MySQL 特有的功能? 不,底层数据库是 MS SQL 2008 R2。 啊,这让事情变得更清楚了。您帖子中的链接是特定于 MySQL 的。 谢谢@qujck。我以某种方式错过了(即使它直接在标题中!)。所以我想SQL server 没有办法,这是一种耻辱。请调整您的答案,以便我将其标记为正确答案。 【参考方案1】:我不相信可以在连接字符串中设置命令超时。
Command 是连接的不同对象。命令可以有一个连接,但它有自己的超时时间,您可以设置。
您上面的示例链接是特定于 MySQL 的 ...
见here
【讨论】:
感谢您的提示。不幸的是,它既不是Command
也不是Connect Timeout
。还是一样的例外。你的意思可能是Connection Timeout=60;
。但是,连接超时的解除与查询应等待完成的时间无关(这是 CommandTimeout 应该做的)。以上是关于如何在连接字符串中设置实体框架 4 CommandTimeout?的主要内容,如果未能解决你的问题,请参考以下文章