【问题标题】:how to set query timeout for an entitydatasource如何为实体数据源设置查询超时
【发布时间】:2013-11-04 22:43:44
【问题描述】:
我有一个 C# 网络表单,它使用绑定到 EntityDataSource 的 gridview。
现在,当我运行一个广泛的查询时,我的底层 sql 查询超时。
有人知道如何使用 EntityDataSource 设置查询超时吗?
我发现一些文章说明了如何使用 SqlDataSource 而不是 EntityDataSource。
谢谢。
【问题讨论】:
标签:
c#
asp.net
entity-framework
webforms
entitydatasource
【解决方案1】:
您可以使用连接字符串设置超时。
来自 msdn How to: Define the Connection String
<connectionStrings>
<add name="AdventureWorksEntities"
connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
provider=System.Data.SqlClient;provider connection string='Data Source=localhost;
Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60;
multipleactiveresultsets=true'" providerName="System.Data.EntityClient" />
</connectionStrings>
注意相关部分:
Connection Timeout=60;
编辑:
我刚刚阅读here 在实体框架 ConnectionString 中设置 TimeOut 时存在一个已知错误。因此,您可能希望直接在上下文中设置 TimeOut,如答案中所述。
this.context.CommandTimeout = 60;
或者:
((IObjectContextAdapter)this.context).ObjectContext.CommandTimeout = 60;