题 在实体框架4.3中设置命令超时


我找不到使用实体框架4.3及其'DbContext设置linq查询的命令超时的方法。 如何在实体框架中增加Commandtimeout?

编辑 我实际上是在寻找命令超时增加。我混淆了两个,它是sql命令超时而不是连接。

谢谢


32
2017-07-31 19:16


起源


对于较新的EF版本,请参阅: stackoverflow.com/a/6234593/12484 - Jon Schneider


答案:


如果您正在使用DbContext,则首先需要下拉到ObjectContext:

((IObjectContextAdapter)context).ObjectContext.CommandTimeout = 180;

62
2017-07-31 20:13



编辑我的问题:我混淆了命令和连接超时。抱歉 - Saher Ahwal
你能告诉我在哪里我们应该在我们的项目中应用这个代码吗? - dilipkumar1007


我在Context类中添加了命令超时值,试图处理填充我的应用程序的一些存储过程的更长处理时间。似乎已经完成了这个伎俩。

public partial class ExampleEntities : DbContext
    {
        public ExampleEntities()
            : base("name=ExampleEntities")
        {
            ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180;
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

10
2018-01-06 15:02



完整的答案与示例代码放在哪里。谢谢。 - sapatelbaps


这个命令就足够了。

((System.Data.Entity.Infrastructure.IObjectContextAdapter) context).ObjectContext.CommandTimeout
                = 180;

9
2018-06-30 12:48



你能告诉我在哪里我们应该在我们的项目中应用这个代码吗? - dilipkumar1007