在Repostory GetAll()之后的Where(),显示DbContext已被释放

时间:2017-09-04 01:55:14

标签: c# unit-of-work aspnetboilerplate

例外截图:

Exceptions Screenshot

ABP官方测试案例: ABP Official Test Case

实际上,我正在研究使用ABP工作单元模块构建新项目的ABP源代码。

我想知道为什么这会显示" DbContext已被处理",因为在ABP中,存储库被定义为UOW。

另一种情况是,如果我手动设置UOW类,则调用将如下所示。

Configuration.UnitOfWork.ConventionalUowSelectors.Add(type => type == typeof(MyCustomUowClass));
一旦我开始在解决方案架构的道路上工作,ABP框架对我帮助很大。

对我来说,弄清楚它是如何运作的,这很重要。

感谢阅读。

这不是一个简单的问题,我知道它应该在使用后处理掉。

但我不知道在哪里处置,因为它与ABP方法的UOW有关。 我可能在某个地方错过了什么。

3 个答案:

答案 0 :(得分:1)

尝试将错误代码移动到使用块内。退出使用块意味着该变量已被废弃,不能再使用了。

答案 1 :(得分:0)

问题来自于您已在users声明中处理了using变量。

原因是用户已经从context中解析出来了IocManager(我假设处理范围和所有范围资源)。因此,您收到了错误消息。

您的using块应该封装所有引用上下文范围的对象(即users

答案 2 :(得分:0)

您只能使用block在SimpleDbContext中进行数据库操作。

enter image description here