首页 > 解决方案 > 实体框架核心上下文实例选项

问题描述

我是 EF Core 的新手。

我创建了从 appsettings.json 引用的上下文

public APITestDBContext(DbContextOptions<APITestDBContext> options):base(options)
{
}

工作得很好。我能够以 Code First 方法更新数据库。但是当我尝试从 dbcontext 创建一个实例时,它正在等待选项。我不知道期待什么选择。

private APITestDBContext db = new APITestDBContext();

没有给出与“APITestDBContext.APITestDBContext(DbContextOptions)”所需的形式参数“options”相对应的参数

我需要在那里写什么?

标签: c#asp.net-coreentity-framework-core

解决方案


你所做的很好,你支持你的类的依赖注入,并且在 Startup.cs 的 ConfigureService 方法中你提到了如何解决注入。所以现在当你需要像这样创建新的时候。您的类需要一个您需要提供的构造函数参数,该参数与您的启动类中的参数值相同。

或为构造函数创建另一个重载,如下所示,不接受任何参数:

public APITestDBContext():base()
{
}

但要做到这一点,它将调用 DBContext.OnConfiguring() 方法来设置您需要实现的数据库。

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("Your Connection String");
    }

推荐阅读