Asp.net core 实体框架DbContext使用错误的构造函数初始化

Asp.net core 实体框架DbContext使用错误的构造函数初始化,asp.net-core,entity-framework-core,dbcontext,Asp.net Core,Entity Framework Core,Dbcontext,在我的ASP.NET核心Web API中,我将DbContext添加到服务: services.AddDbContext<OpContext>(options => options.UseSqlServer(Configuration["DatabaseConnectionString"])); 它总是调用无参数构造函数,而不是调用带有选项的构造函数。因此,我的连接不起作用 这是我将其注入控制器的地方: public RequestControll

在我的ASP.NET核心Web API中,我将
DbContext
添加到服务:

 services.AddDbContext<OpContext>(options =>  options.UseSqlServer(Configuration["DatabaseConnectionString"]));
它总是调用无参数构造函数,而不是调用带有选项的构造函数。因此,我的连接不起作用

这是我将其注入控制器的地方:

  public RequestController(OpContext dbContext)
    {
        cxt = dbContext;
        persistenceManager = new OpPersistenceManager(dbContext);
    }
这是实际的例外情况:

System.InvalidOperationException HResult=0x80131509消息=否 已为此DbContext配置了数据库提供程序。提供者 可以通过重写DbContext.onconfig方法或 通过在应用程序服务提供程序上使用AddDbContext。如果 使用AddDbContext,然后还要确保您的DbContext类型 在其构造函数中接受DbContextOptions对象,然后 将其传递给DbContext的基构造函数。
Source=Microsoft.EntityFrameworkCore堆栈跟踪:位于 Microsoft.EntityFrameworkCore.Internal.DbContextServices.Initialize(IServiceProvider scopedProvider、IDbContextOptions、DbContext context context)
在 Microsoft.EntityFrameworkCore.DbContext.get\u InternalServiceProvider() 在Microsoft.EntityFrameworkCore.DbContext.get_ChangeTracker()中 Breeze.Persistence.EFCore.EFPersistenceManager`1..ctor(T上下文)
在Op.Authors.Api.Breeze.OpPersistenceManager..ctor(OpContext)上 dbContext)在 C:\dev\UPP\Source\Op\Op.Authors.Api\Breeze\OpPersistenceManager.cs:line 8在Op.Authors.Api.Controllers.RequestController..ctor(OpContext dbContext)在 C:\dev\UPP\Source\Op\Op.Authors.Api\Controllers\RequestController.cs:line 21时 Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider.c__DisplayClass4_0.b__0(ControllerContext 控制器上下文)在 Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.c_uuDisplayClass5_0.g_uCreateController|0(ControllerContext 控制器上下文)在 Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(状态)& 接下来,在 Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()


我遗漏了什么吗?

免责声明:我复制了您的代码,但有一个继承级别

改变

public OpContext(DbContextOptions):base(options){

public OpContext(DbContextOptions):base(options){
为我解决了这个问题


注意DbContextOptions的类型参数。

注释不用于扩展讨论;这段对话已经结束了。太好了:)谢谢江户。我将把这个标记为答案。
public partial class OpContext : UppContext
{
    public OpContext() : base() { }
    public OpContext(IIdentificationService idService) : base(idService) { }

    public OpContext(DbContextOptions<DbContext> options) : base(options)   { }
}
  public RequestController(OpContext dbContext)
    {
        cxt = dbContext;
        persistenceManager = new OpPersistenceManager(dbContext);
    }