我找不到使用实体框架4.3及其'来设置linq查询的命令超时的方法。的DbContext。 如何在实体框架中增加Commandtimeout?
修改 我实际上是在寻找命令超时增加。我混淆了两个,它是sql命令超时而不是连接。
由于
答案 0 :(得分:62)
如果您正在使用DbContext,则首先需要下拉到ObjectContext:
((IObjectContextAdapter)context).ObjectContext.CommandTimeout = 180;
答案 1 :(得分:10)
我在Context类中添加了命令timeout值,试图处理填充我的应用程序的一些存储过程的更长处理时间。好像已经成功了。
public partial class ExampleEntities : DbContext
{
public ExampleEntities()
: base("name=ExampleEntities")
{
((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
答案 2 :(得分:9)
这个命令就足够了。
((System.Data.Entity.Infrastructure.IObjectContextAdapter) context).ObjectContext.CommandTimeout
= 180;
答案 3 :(得分:0)
使用await时,我在设置CommandTimeout时遇到了问题,
await _dbContext.Database.Connection.QueryAsync("Update ....")
,
在异步方法调用(例如BeginExecuteReader)期间,将忽略CommandTimeout属性。
我更改为:
_dataWarehouseDbContext.Database.Connection.Query("Update ...")
和CommandTimeout开始工作:)