我收到此错误:
操作无法完成,因为 DbContext 已被释放。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.InvalidOperationException:操作无法完成,因为 DbContext 已被释放
我收到此错误:
操作无法完成,因为 DbContext 已被释放。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.InvalidOperationException:操作无法完成,因为 DbContext 已被释放
这是什么意思?
这意味着您无法继续使用您的DBContext
对象。DBContext
实现IDisposable
;所以,它有一个Dispose()
方法:
执行与释放、释放或重置非托管资源相关的应用程序定义任务。
所以,
为什么被处置?
Dispose()
被某物在某处显式调用,或者在退出using
块时被隐式调用。
您的 DbContext 已关闭并处置,您收到错误可能是因为在处置 dbcontext 后延迟加载哪些文件。您的 DbContext 是否包含在 using 语句中?如果是这样,那么它会在调用数据库之前被处理掉
似乎您的 DbContext 连接在使用前已关闭并处置。尝试使用块将您的代码放入其中
using(MyDbContext objDbContext = new MyDbContext())
{
//Put your code here.
}