我是asp.net核心的新手。当我尝试使用"Invalid object name AspNetUserClaims"
来登录用户时出现错误signInManager
。我不希望该声明包含在我的应用程序中,我不为用户存储任何声明。
为了克服此错误,我创建了AspNetUserClaims
表,但还是没有运气,但是我遇到了同样的异常。
我正在使用asp.net core 2.2
错误屏幕截图
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();
});
}
}