System.ObjectDisposedException:"ObjectContext 实例已被释放,不能再用于需要连接的操作。



我在查看页面中遇到错误。 它的我的控制器

using (wipoeeshetronEntities db = new wipoeeshetronEntities())
{
var tbllogin = db.masteruserlogindet_tbl.Where(m => m.IsDeleted == 0).ToList();
return View(tbllogin); 
}

这是我的观点:

@Html.DisplayFor(modelItem => item.masterroledet_tbl.RoleDesc)

删除"使用"。控制器有自己的 dispose(( 方法。然后,您的新代码将是...

wipoeeshetronEntities db = new wipoeeshetronEntities()
var tbllogin = db.masteruserlogindet_tbl.Where(m => m.IsDeleted == 0).ToList();
return View(tbllogin); 

这应该行得通。

调用View时返回的对象是一个 ActionResult 实例,该实例在管道中进一步传递。但是,由于您延迟加载实体(即masterroledet_tbl表上没有包含或联接(,因此您已经超出了 datacontext 的范围(在using语句中(。

解决方案不是不释放上下文(这可能会导致内存泄漏问题(,而是在离开 MVC 操作之前在实体上包含/联接正确的对象。

最新更新