C# Wait正在处理DbContext-ObjectContext实例已被处理
在一个C# Wait正在处理DbContext-ObjectContext实例已被处理,c#,.net,entity-framework,asynchronous,async-await,C#,.net,Entity Framework,Asynchronous,Async Await,在一个async方法中,我有一个dbContext的实例传递给它: var userIds = await GetUserIds(db); 使用GetUserID: private async Task<List<int>> GetUserIds(AppContext db) { var items = await db.Items.Where(s => s.IsValid).Distinct().ToListAsync(); /
async
方法中,我有一个dbContext
的实例传递给它:
var userIds = await GetUserIds(db);
使用GetUserID:
private async Task<List<int>> GetUserIds(AppContext db)
{
var items = await db.Items.Where(s => s.IsValid).Distinct().ToListAsync(); // simplified
return items;
}
专用异步任务getUserId(AppContext db)
{
var items=await db.items.Where(s=>s.IsValid).Distinct().ToListAsync();//简化
退货项目;
}
但我得到:
{“ObjectContext实例已被释放,无法再使用
用于需要连接的操作。“}
我可以通过删除
await
和ToListAsync
来强制运行此功能,但显然这只是一张绷带。为什么要处理我的上下文?我怀疑GetUserIds
方法的调用方正在操作完成之前处理上下文。您确定在处理上下文之前正在等待返回的任务吗?await
不处理DbContext
。问题出在您尚未发布的代码中。一些国际奥委会集装箱在处理过程中过于急切;这可能会导致您看到的情况。@StephenCleary感谢您的持续帮助。我会发布周围的代码。