激活服务时无法解析 IDbContext
Unable to resolve IDbContext while activating Service
使用 MediatR 在 CQRS 中工作,在 Startup 中我注册了 DomainEventDispatcher、Repos、Query- 和 Eventhandlers 以及服务。
存储库与 DbContext 一起工作,我的服务也是如此。一切 CRUD 工作,直到我在控制器中注入我的服务,
我收到以下错误:
尝试激活 'Service'.
时无法解析类型 'IDbContext' 的服务
我觉得很奇怪
services.AddDbContext<DbContext>(options =>
{
options.UseLazyLoadingProxies().UseSqlServer(cs);
options.EnableSensitiveDataLogging(true);
});
在注册以下内容之前:
services
.AddScoped<IDomainEventsDispatcher, DomainEventsDispatcher>()
.AddScoped<IRepo<ToDoItem>, EfCRepo<ToDoItem>>()
.AddMediatR(cfg => cfg.AsScoped(), typeof(ToDoItemsQueryHandler).GetTypeInfo().Assembly)
.AddScoped<INotificationHandler<Event>, EventHandler>()
.AddMediatR(cfg => cfg.AsScoped(), typeof(EventHandler).GetTypeInfo().Assembly);
.AddScoped<IService, Service>()
当我尝试使用
添加 IDbContext 时
AddScoped<IDbContext, DbContext>()
我的上下文为空,无法再从 Db 中获取实体。
我觉得很奇怪,我需要为服务添加 IDbContext,
看到 Repos 也可以与 DbContext 一起工作,而无需解析 IDbContext 类型的服务。
我查看了 MediatR 官方文档,但找不到有关如何注册服务的任何信息,
谷歌搜索 'register services MediatR startup' 主要重定向到其他问题,
所以非常欢迎你们 help/insights!
我提出了一个新问题,因为我可以依赖注入,但服务似乎有所不同。 S/O 关于在启动中注册的大多数问题对我来说更通用。
提前致谢!
供将来参考:
解决方案确实是添加
AddScoped<IDbContext, DbContext>()
一定是其他什么东西打破了我的语境
使用 MediatR 在 CQRS 中工作,在 Startup 中我注册了 DomainEventDispatcher、Repos、Query- 和 Eventhandlers 以及服务。 存储库与 DbContext 一起工作,我的服务也是如此。一切 CRUD 工作,直到我在控制器中注入我的服务, 我收到以下错误: 尝试激活 'Service'.
时无法解析类型 'IDbContext' 的服务我觉得很奇怪
services.AddDbContext<DbContext>(options =>
{
options.UseLazyLoadingProxies().UseSqlServer(cs);
options.EnableSensitiveDataLogging(true);
});
在注册以下内容之前:
services
.AddScoped<IDomainEventsDispatcher, DomainEventsDispatcher>()
.AddScoped<IRepo<ToDoItem>, EfCRepo<ToDoItem>>()
.AddMediatR(cfg => cfg.AsScoped(), typeof(ToDoItemsQueryHandler).GetTypeInfo().Assembly)
.AddScoped<INotificationHandler<Event>, EventHandler>()
.AddMediatR(cfg => cfg.AsScoped(), typeof(EventHandler).GetTypeInfo().Assembly);
.AddScoped<IService, Service>()
当我尝试使用
添加 IDbContext 时AddScoped<IDbContext, DbContext>()
我的上下文为空,无法再从 Db 中获取实体。
我觉得很奇怪,我需要为服务添加 IDbContext, 看到 Repos 也可以与 DbContext 一起工作,而无需解析 IDbContext 类型的服务。
我查看了 MediatR 官方文档,但找不到有关如何注册服务的任何信息, 谷歌搜索 'register services MediatR startup' 主要重定向到其他问题, 所以非常欢迎你们 help/insights!
我提出了一个新问题,因为我可以依赖注入,但服务似乎有所不同。 S/O 关于在启动中注册的大多数问题对我来说更通用。
提前致谢!
供将来参考: 解决方案确实是添加
AddScoped<IDbContext, DbContext>()
一定是其他什么东西打破了我的语境