SignInManager引发无效的对象名称AspNetUserClaims异常

时间:2019-02-23 03:47:26

标签: c# asp.net-core asp.net-core-identity asp.net-core-2.2

我是asp.net核心的新手。当我尝试使用"Invalid object name AspNetUserClaims"来登录用户时出现错误signInManager。我不希望该声明包含在我的应用程序中,我不为用户存储任何声明。

为了克服此错误,我创建了AspNetUserClaims表,但还是没有运气,但是我遇到了同样的异常。

我正在使用asp.net core 2.2

错误屏幕截图

enter image description here

MUser.cs

public class MUser : IdentityUser<Guid>
{
    public ICollection<MUserRole> UserRoles { get; set; }
}

MRole.cs

public class MRole : IdentityRole<Guid>
{
    public MRole() : base() {}
    public MRole(string RoleName) : base(RoleName) { }
    public ICollection<MUserRole> UserRoles { get; set; }
}

MUserRole.cs

public class MUserRole : IdentityUserRole<Guid>
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public Guid Id { get; set; }
    public Guid? TenantId { get; set; }
    public DateTime? CreatedDate { get; set; }
    public Guid? CreatedBy { get; set; }
    public DateTime? ModifiedDate { get; set; }
    public Guid? ModifiedBy { get; set; }
    public virtual MkTenant Tenant { get; set; }
    public virtual MUser User { get; set; }
    public virtual MRole Role { get; set; }
}

CoreIdentityDbContext.cs

public class CoreIdentityDbContext : IdentityDbContext<MUser, MRole, Guid, IdentityUserClaim<Guid>, MUserRole, IdentityUserLogin<Guid>, IdentityRoleClaim<Guid>, IdentityUserToken<Guid>>
{
    public CoreIdentityDbContext(DbContextOptions<DbContext> options)
        : base(options)
    {
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if (!optionsBuilder.IsConfigured)
        {
            optionsBuilder.UseSqlServer("Server=localhost;Database=myDb;User=sa;password=Baskar123#", b => b.MigrationsAssembly("Mk.MId.Api"));
        }
    }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);

        builder.Entity<MUser>().ToTable("MkUser");
        builder.Entity<MRole>().ToTable("MkRole");
        builder.Entity<MUserRole>().ToTable("MkUserRole");

        //builder.Entity<IdentityUserLogin<Guid>>().ToTable("MUserLogin");
        //builder.Entity<IdentityUserClaim<Guid>>().ToTable("MUserClaim");
        //builder.Entity<IdentityUserToken<Guid>>().ToTable("MUserToken");
        //builder.Entity<IdentityRoleClaim<Guid>>().ToTable("MRoleClaim");

        builder.Entity<MUserRole>(userRole =>
        {
            //userRole.(ur => ur.Id );

            userRole.HasOne(ur => ur.Role)
                .WithMany(r => r.UserRoles)
                .HasForeignKey(ur => ur.RoleId)
                .IsRequired();

            userRole.HasOne(ur => ur.User)
                .WithMany(r => r.UserRoles)
                .HasForeignKey(ur => ur.UserId)
                .IsRequired();
        });

    }
}

0 个答案:

没有答案