我有一个C#Web表单,它使用绑定到实体数据源的网格视图。
现在,当我运行一个广泛的查询时,基础 sql 查询超时。
有人知道如何使用实体数据源设置查询超时吗?
我找到了几篇文章,说明如何使用 SqlDataSource 而不是 EntityDataSource 来做到这一点。
谢谢。
可以使用连接字符串设置超时。
来自 msdn 如何:定义连接字符串
<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;
编辑:
我刚刚在这里读到,当您在实体框架连接字符串中设置超时时,有一个已知的错误。因此,您可能希望直接在上下文上设置超时,如答案中所述。
this.context.CommandTimeout = 60;
或:
((IObjectContextAdapter)this.context).ObjectContext.CommandTimeout = 60;