繁体   English   中英

没有注册 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext' 类型的服务

[英]No service for type 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext' has been registered

使用“AddIdentity”扩展方法时出现错误: 'No service for type 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext' has been registered.'

我将IdentityUser添加到ApplicationUser class

public class ApplicationUser : IdentityUser { }

然后我配置了 DbContext:

public class ReadDbContext : IdentityDbContext<ApplicationUser>
{
    public DbSet<FileReadModel> Documents { get; set; }
    public DbSet<CategoryReadModel> Categories { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {

        modelBuilder.HasDefaultSchema("myschema");
        var configuration = new ReadConfiguration();
        modelBuilder.ApplyConfiguration<FileReadModel>(configuration);
        modelBuilder.ApplyConfiguration<CategoryReadModel>(configuration);
        base.OnModelCreating(modelBuilder);
    }
}

最后调用AddIdentity扩展方法。

var options = configuration.GetOptions<PostgresOptions>("Database");
services.AddDbContext<ReadDbContext>(ctx =>
            ctx.UseNpgsql(options.ConnectionString));
services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores<ReadDbContext>()
            .AddDefaultTokenProviders();

但是在启动时,我收到错误消息,指出找不到IdentityDbContext的服务类型。 我也尝试配置自定义角色和自定义键。 我每次都会遇到同样的错误。 我在这里错过了什么?

在某个地方你要注入错误的 class,

举个例子;

@inject ManagerClass<IdentityDbContext> managerClass

@inject ManagerClass<ApplicationUser> managerClass

我找到了解决方案。 无法从binobject文件夹中彻底删除某些内容。 清理什么也没做,但手动删除编译的文件。 删除后重新编译运行!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM