【发布时间】:2020-09-08 14:36:48
【问题描述】:
我正在处理我的第一个 Blazor 项目,我遇到了一个关于对象生命周期的问题。
确切的问题是我的 EF DbContext 永远不会被释放,因此在第一次数据库更新后,任何后续更新都会失败,因为异常告诉我该实体已被上下文跟踪。
所以经过调查,我发现所有依赖注入服务都在应用启动时得到解决,并且永远不会被释放,DbContext 也是作为 UnitOfWork 注入的
在 MVC 中,端点对象会在调用结束时被释放,因此 DbContext 会被释放,并且永远不会发生此问题。
但在 Blazor 中,对象的生命周期是不同的。作为一种好的做法,我应该在需要时手动解析DbContext,还是错过了什么?
编辑:
我还应该补充一点,我的DbContext 被添加到IServiceCollection 为Scoped
【问题讨论】:
-
您到底是如何注入 DbContext 的?发布代码。请。
-
services.AddDbContext
(options);
标签: c# entity-framework dependency-injection blazor lifetime