C# 实体框架核心上下文实例选项

C# 实体框架核心上下文实例选项,c#,asp.net-core,entity-framework-core,C#,Asp.net Core,Entity Framework Core,我是EF Core的新手 我已经创建了引用appsettings.json的上下文 public APITestDBContext(DbContextOptions<APITestDBContext> options):base(options) { } 没有给出与所需的形式化参数相对应的参数 参数的“选项” 'APITestDBContext.APITestDBContext(DbContextOptions)' 我需要在那里写些什么?您所做的很好,您支持类的依赖注入,并且在St

我是EF Core的新手

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

public APITestDBContext(DbContextOptions<APITestDBContext> options):base(options)
{
}
没有给出与所需的形式化参数相对应的参数 参数的“选项” 'APITestDBContext.APITestDBContext(DbContextOptions)'


我需要在那里写些什么?

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

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

public APITestDBContext():base()
{
}
但要做到这一点,它将调用DBContext.onconfig()方法来设置您需要实现的数据库

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

我不知道有哪些选项是期望传递选项不是强制性的
base
也接受空构造函数。通常,您不应该新建dbcontext,而是应该让DI将其注入,如果要新建dbcontext,则必须为其提供选项,以便其工作
 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("Your Connection String");
    }