-5

我收到此错误:

操作无法完成,因为 DbContext 已被释放。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.InvalidOperationException:操作无法完成,因为 DbContext 已被释放

4

3 回答 3

1

这是什么意思?

这意味着您无法继续使用您的DBContext对象。DBContext实现IDisposable;所以,它有一个Dispose()方法:

执行与释放、释放或重置非托管资源相关的应用程序定义任务。

所以,

为什么被处置?

Dispose()被某物在某处显式调用,或者在退出using块时被隐式调用。

于 2013-09-05T13:07:37.837 回答
1

您的 DbContext 已关闭并处置,您收到错误可能是因为在处置 dbcontext 后延迟加载哪些文件。您的 DbContext 是否包含在 using 语句中?如果是这样,那么它会在调用数据库之前被处理掉

于 2013-09-05T13:08:41.870 回答
0

似乎您的 DbContext 连接在使用前已关闭并处置。尝试使用块将您的代码放入其中

using(MyDbContext objDbContext = new MyDbContext())
{
  //Put your code here.

} 
于 2013-09-05T18:58:32.073 回答