.NET Core:“无法具体化‘IdentityUser’类型的实体实例。没有与鉴别器值匹配的鉴别器”

Sin*_*Lee 5 .net c# dbcontext asp.net-core asp.net-core-5.0

我正在为用户创建配置文件,向 ApplicationUser 添加列,然后在 ApplicationDbContext 中执行 DbSet 命令。仅仅编写 DbSet 命令,就会抛出错误:

InvalidOperationException:无法具体化“IdentityUser”类型的实体实例。没有鉴别器与鉴别器值“”匹配。

我做错了什么以及哪里做错了?我该如何修复它?只需将 DbSet 放到 ApplicationDbContex 中,一切就可以正常运行。

在此输入图像描述

应用程序用户的代码:

public class ApplicationUser : IdentityUser
{
    [Display(Name = "Full Name")] public string FullName { get; set; }
    public DateTime CreateAt { get; set; }
    public DateTime? UpdateAt { get; set; }
    public string ImagePath { get; set; }

    public ApplicationUser()
    {
        CreateAt = DateTime.Now;
        UpdateAt = DateTime.Now;
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序DbConText:

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

    public DbSet<ApplicationUser> ApplicationUsers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

看来您缺少ApplicationUser作为上下文的通用参数。

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
Run Code Online (Sandbox Code Playgroud)

更详细地查看:自定义身份模型