【发布时间】:2016-01-13 17:54:44
【问题描述】:
我的函数在不运行异步时可以正常工作,但是当我尝试将其更改为 .ToListAsync() 时它会失败并显示
"ObjectContext 实例已被释放,不能再被释放 用于需要连接的操作"
以下是失败的...
public async void UpdateNoAction()
{
await (from r in Context.CodingReview
from s in Context.UserDetails.Where(s => s.reviewId = r.id)
where ...
select new ExtendedDetails(){
Review = r,
Spell = s
}).ToListAsync();
}
上下文是一个实体框架数据库连接。返回类型是无效的,所以我实际上得到了错误消息,而不是静默失败,但稍后将更改为 bool。
如果我出于测试目的删除 Context.UserDetails 部分,它可以正常工作。关于它为什么会失败的任何想法?
【问题讨论】:
-
向我们展示您的完整方法。
-
你的情况是什么上下文?它似乎是一个数据库连接,您在异步方法完成之前关闭/处置它。
-
Context的生命周期是什么?