等待正在处理 DbContext - ObjectContext 实例已被处理
Await is disposing DbContext - The ObjectContext instance has been disposed
我在 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;
}
但我得到:
{"The ObjectContext instance has been disposed and can no longer be
used for operations that require a connection."}
我可以通过删除 await
和 ToListAsync
将其强制为 运行,但显然这只是创可贴。为什么我的上下文被处理掉了?
我怀疑您的 GetUserIds
方法的调用者在操作完成之前处理上下文。您确定在处理上下文之前等待返回的任务吗?
我在 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;
}
但我得到:
{"The ObjectContext instance has been disposed and can no longer be used for operations that require a connection."}
我可以通过删除 await
和 ToListAsync
将其强制为 运行,但显然这只是创可贴。为什么我的上下文被处理掉了?
我怀疑您的 GetUserIds
方法的调用者在操作完成之前处理上下文。您确定在处理上下文之前等待返回的任务吗?