add-Migration 错误 没有为此 DbContext 配置数据库提供程序

Ara*_*ash 2 c# entity-framework ef-core-2.1

我正在尝试将迁移添加到 DbContext ,

add-migration initial -verbose
Run Code Online (Sandbox Code Playgroud)

我收到错误

尚未为此 DbContext 配置数据库提供程序。可以通过覆盖 DbContext.OnConfiguring 方法或在应用程序服务提供者上使用 AddDbContext 来配置提供者。如果使用 AddDbContext,则还要确保您的 DbContext 类型在其构造函数中接受 DbContextOptions 对象并将其传递给 DbContext 的基本构造函数。

我的解决方案中有两个 .netcore 类库项目和 ,netcore 单元测试项目

  1. 域(Poco Classes)
  2. 存储库(.Net Core 2.1、EntitiFrameworkCore 2.1.4)
  3. 存储库测试

这是我的 DataContext 类

 public class DataContext:DbContext
    {
        public DataContext(DbContextOptions<DataContext> option) : base(option)
        {

        }

        public DataContext()
        {

        }

    public DbSet<User> User { get; set; }
    public DbSet<Cart> Cart { get; set; }
    public DbSet<CatalogItem> CatalogItem { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

带有 DbContextOptions 对象的构造函数已经存在。

可能是什么问题?

这是测试项目中的一个类。

 public class CustomerRepositoryIntegrationTest
    {
        [Fact]
        public void should_add_customer()
        {
            //Arrange
            var option = new DbContextOptionsBuilder<DataContext>()
            .UseSqlServer(@"Data Source=(LocalDb)\MSSQLLocalDB;Database=ecommerce;Integrated Security=SSPI").Options;

            //Act
            using (DataContext dataConext = new DataContext(option))
            {

                dataConext.Database.Migrate();
                customer actual = new Customer()
                dataConext.Customer.Add(actual);
                dataConext.SaveChanges();

                var expected = dataConext.Customer.FirstOrDefault();

                //Assert
                expected.Should().BeEquivalentTo(expected);
            }


            //Assert
        }
    }
Run Code Online (Sandbox Code Playgroud)

Ara*_*ash 6

在测试项目中创建一个实现IDesignTimeDbContextFactory的类并将测试项目设置为启动项目

public class TemporaryDataContextFactory : IDesignTimeDbContextFactory<DataContext>
{
    public DataContext CreateDbContext(string[] args)
    {
        var option = new DbContextOptionsBuilder<DataContext>()
        .UseSqlServer(@"Data Source=(LocalDb)\MSSQLLocalDB;Database=IbReport;Integrated Security=SSPI").Options;
        return new DataContext(option);
    }
}
Run Code Online (Sandbox Code Playgroud)