c# - 为什么在 NET 5 的单例服务中使用范围服务时迁移失败但编译没有?
问题描述
先介绍一些背景资料。我的项目是在 NET Core 3.1 中完成的。我创建并应用了迁移,没有任何问题。将项目更新到 NET 5 后,我开始收到Cannot consume scoped service from singleton
错误消息。
这种情况是由于有一个作用域DbContext
(它的默认生命周期)并试图将它与单例数据服务一起使用(通过将 aDbContext
作为参数传递给数据服务构造函数)。
我知道为什么会发生这种情况,以及如何处理它,但我想了解它为什么在 NET Core 3.1 中有效(用于添加迁移以及编译和运行应用程序),而在 NET 5 中它仍然可以编译和运行,但是我不能在不传递范围而不是DbContext
dataService 本身的情况下添加迁移。NET版本是否已更改?
解决方案
推荐阅读
- apache-poi - POI 错误自定义属性当我将属性设置为 MSIP_Label_a7f2ec83-e677-438d-afb7-4c7c0dbc872b_Name: Secret
- maven - 基于配置文件的条件模块
- python - 如何从预测图像中过滤和去除图像中的噪声
- css - Webpack 5 无法编译 boostrap
- python - 检查序列中的元素是否大于前两个元素
- python - pandas:如果值为 NaT,则在数据框中添加行
- math - 逼近未知函数的逆
- jira - 在 Jira 中配置列 - 列管理
- javascript - .catch 控制台错误的生产和开发最佳实践是什么?
- python - 地址更改影响脚本?使用服务器发送电子邮件