无法完成操作,因为DbContext已被释放,PagedList

时间:2015-02-04 00:46:41

标签: sql-server entity-framework asp.net-mvc-4

使用ASP.NET MVC和Entity,我不断得到“由于DbContext已被处理,因此无法完成操作。”。

使用UnitOfWork模式和GenericRepository。

异常发生在PagedList.PagedListExtensions.ToPagedList。

我尝试使用AsNoTracking,没有任何结果。

如何避免发生这些异常,因为它会导致客户端界面出现内部错误。

1 个答案:

答案 0 :(得分:2)

在处理上下文之前,您很可能不会要求枚举查询。 LINQ to Entities实际上不会执行查询,直到您要求枚举查询,即查看结果集中的每个项目。 ToPagedList听起来就像是需要枚举的东西。

修复方法是在处理上下文之前(可能在存储库中)强制查询枚举,方法是调用它上面的.ToList()