.net core &引用;错误:无法创建类型为';AppDbContext';。对于设计时支持的不同模式”;

.net core &引用;错误:无法创建类型为';AppDbContext';。对于设计时支持的不同模式”;,.net-core,entity-framework-core,.net Core,Entity Framework Core,我正在使用VS2019预览版和.NETCore3.0创建一个ASP.NETCoreWebAPI。 当我尝试执行:添加迁移时,出现错误: 无法创建“AppDbContext”类型的对象。对于设计时支持的不同模式 下面是我的上下文文件: public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)

我正在使用VS2019预览版和.NETCore3.0创建一个ASP.NETCoreWebAPI。 当我尝试执行:添加迁移时,出现错误: 无法创建“AppDbContext”类型的对象。对于设计时支持的不同模式

下面是我的上下文文件:

  public class AppDbContext : DbContext
  {
     public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
        { }
     public DbSet<Categoria> Categorias { get; set; }
     public DbSet<Produto> Produtos { get; set; }
  }
我一直在使用这种方法,它是有效的

我还尝试在上下文类中创建一个空构造函数,但出现以下错误: “System.InvalidOperationException:尚未为此DbContext配置任何数据库提供程序…”

我忘了一些细节了吗


注意:这在ASP.NET Core 2.2中运行良好。通过实现
IDesignTimeDbContextFactory
接口,您可以告诉迁移如何创建
DbContext
:如果在与派生的
DbContext
相同的项目中或在应用程序的启动项目中找到实现此接口的类,这些工具绕过了创建
DbContext
的其他方法,而是使用设计时工厂

有关更多信息,请参阅

使用Microsoft.EntityFrameworkCore;
使用Microsoft.EntityFrameworkCore.Design;
使用Microsoft.EntityFrameworkCore.Infrastructure;
名称空间MyProject
{
公共类AppDbContextFactory:IDesignTimeDbContextFactory
{
公共AppDbContext CreateDbContext(字符串[]args)
{
var optionsBuilder=new DbContextOptionsBuilder();
使用MySQL(“服务器=本地主机;数据库…”);
返回新的AppDbContext(optionsBuilder.Options);
}
}
}

确保已更新Nuget软件包。如果没有,则>右键单击解决方案资源管理器中的项目,选择Manage Nuget packages并更新带有蓝色小箭头的包。希望,它会为你工作!与2019年相比,.NET Core 3.1也存在同样的问题。
public void ConfigureServices(IServiceCollection services)
{
  services.AddDbContext<AppDbContext>(options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));

  services.AddControllers().AddNewtonsoftJson();
}
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;DataBase....."
  },
...
}
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.EntityFrameworkCore.Infrastructure;

namespace MyProject
{
    public class AppDbContextFactory : IDesignTimeDbContextFactory<AppDbContext>
    {
        public AppDbContext CreateDbContext(string[] args)
        {
            var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>();
            optionsBuilder.UseMySql("Server=localhost;DataBase.....");

            return new AppDbContext(optionsBuilder.Options);
        }
    }
}