Asp.net core 无法创建迁移到3.0后从IdentityDBContext继承的ApplicationDbContext类型的对象

Asp.net core 无法创建迁移到3.0后从IdentityDBContext继承的ApplicationDbContext类型的对象,asp.net-core,entity-framework-core,ef-core-3.0,Asp.net Core,Entity Framework Core,Ef Core 3.0,当我尝试在迁移到.net core 3.0和ef core 3.0后添加迁移时,我得到一个错误:无法创建“ApplicationDbContext”类型的对象 依赖项如下所示: 我的代码如下: ApplicationDbContext.cs public class ApplicationDbContext : IdentityDbContext<ApplicationUser>, ILocalizationDbContext { private readonly I

当我尝试在迁移到.net core 3.0和ef core 3.0后添加迁移时,我得到一个错误:无法创建“ApplicationDbContext”类型的对象

依赖项如下所示:

我的代码如下:

ApplicationDbContext.cs

  public class ApplicationDbContext : IdentityDbContext<ApplicationUser>, ILocalizationDbContext
{
    private readonly IServiceProvider _serviceProvider;

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

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options,
        IServiceProvider serviceProvider)
        : base(options)
    {
        _serviceProvider = serviceProvider;
    } 
   }
 public void ConfigureServices(IServiceCollection services)
    {

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection"), 
                b => b.MigrationsAssembly("Infrastructure")), 
            ServiceLifetime.Transient);

        services.AddDefaultIdentity<ApplicationUser>()
            .AddRoles<IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>();
    }
 public class Program
{
    public static void Main(string[] args)
    {
        var host = Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webHostBuilder =>
                {
                    webHostBuilder
          .UseContentRoot(Directory.GetCurrentDirectory())
          .UseIISIntegration()
          .UseStartup<Startup>();
                })
                .Build();

        host.Run();
    }
}
公共类ApplicationDbContext:IdentityDbContext,ILocalizationDbContext
{
私有只读服务器ViceProvider\u服务提供商;
公共应用程序DBContext(DbContextOptions选项)
:基本(选项)
{
}        
公共应用程序DBContext(DbContextOptions选项,
IServiceProvider服务提供商)
:基本(选项)
{
_服务提供者=服务提供者;
} 
}
Startup.cs

  public class ApplicationDbContext : IdentityDbContext<ApplicationUser>, ILocalizationDbContext
{
    private readonly IServiceProvider _serviceProvider;

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

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options,
        IServiceProvider serviceProvider)
        : base(options)
    {
        _serviceProvider = serviceProvider;
    } 
   }
 public void ConfigureServices(IServiceCollection services)
    {

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection"), 
                b => b.MigrationsAssembly("Infrastructure")), 
            ServiceLifetime.Transient);

        services.AddDefaultIdentity<ApplicationUser>()
            .AddRoles<IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>();
    }
 public class Program
{
    public static void Main(string[] args)
    {
        var host = Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webHostBuilder =>
                {
                    webHostBuilder
          .UseContentRoot(Directory.GetCurrentDirectory())
          .UseIISIntegration()
          .UseStartup<Startup>();
                })
                .Build();

        host.Run();
    }
}
public void配置服务(IServiceCollection服务)
{
services.AddDbContext(选项=>
options.UseSqlServer(
Configuration.GetConnectionString(“DefaultConnection”),
b=>b.MigrationsAssembly(“基础架构”),
服务寿命(瞬时);
services.AddDefaultIdentity()
.AddRoles()
.AddEntityFrameworkStores();
}
Program.cs

  public class ApplicationDbContext : IdentityDbContext<ApplicationUser>, ILocalizationDbContext
{
    private readonly IServiceProvider _serviceProvider;

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

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options,
        IServiceProvider serviceProvider)
        : base(options)
    {
        _serviceProvider = serviceProvider;
    } 
   }
 public void ConfigureServices(IServiceCollection services)
    {

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection"), 
                b => b.MigrationsAssembly("Infrastructure")), 
            ServiceLifetime.Transient);

        services.AddDefaultIdentity<ApplicationUser>()
            .AddRoles<IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>();
    }
 public class Program
{
    public static void Main(string[] args)
    {
        var host = Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webHostBuilder =>
                {
                    webHostBuilder
          .UseContentRoot(Directory.GetCurrentDirectory())
          .UseIISIntegration()
          .UseStartup<Startup>();
                })
                .Build();

        host.Run();
    }
}
公共类程序
{
公共静态void Main(字符串[]args)
{
var host=host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webHostBuilder=>
{
网络主机生成器
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup();
})
.Build();
host.Run();
}
}

正如错误消息中的链接所述,请更新程序类,使其如下所示

公共类程序
{
公共静态void Main(字符串[]args)
{
var host=CreateHostBuilder(args)
.Build();
host.Run();
}
//EF Core在设计时使用此方法访问DbContext
公共静态IHostBuilder CreateHostBuilder(字符串[]args)
=>Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webHostBuilder=>
{
网络主机生成器
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup();
});
}