Await正在处理DbContext - 已经处理了ObjectContext实例

时间:2016-11-05 23:29:03

标签: c# .net entity-framework asynchronous async-await

我在async方法中有以下内容,其中传递了dbContext个实例:

 var userIds = await GetUserIds(db);

使用GetUserIds:

    private async Task<List<int>> GetUserIds(AppContext db)
    {
        var items = await db.Items.Where(s => s.IsValid).Distinct().ToListAsync(); // simplified
        return items;
    }

但我明白了:

  

{“ObjectContext实例已被释放,不再可以   用于需要连接的操作。“}

我可以通过删除awaitToListAsync强制执行此操作,但显然这只是一个绑定。为什么我的背景会被处理?

1 个答案:

答案 0 :(得分:3)

我怀疑你的GetUserIds方法的调用者在操作完成之前处理了上下文。在处理上下文之前,您确定要等待返回的任务吗?