c# - SignInManager 引发无效的对象名称 AspNetUserClaims 异常
问题描述
我是 asp.net 核心的新手。"Invalid object name AspNetUserClaims"
当我尝试使用signInManager
以登录用户时出现此错误。我不希望在我的应用程序中声明部分,我不为用户存储任何声明。
为了克服这个错误,我创建了AspNetUserClaims
表,但没有运气,我仍然遇到同样的异常。
我正在使用 asp.net 核心 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();
});
}
}
解决方案
推荐阅读
- c++ - node-gyp build 给出未解决的外部符号错误
- .net - Azure Function V2 - 错误:与服务器的连接异常终止
- php - 基于类别顺序在 laravel eloquent 关系中获得一行的特定类别中有多少张图像?
- asp.net - 如何从 ASP.NET 页面返回 JSON 值
- laravel - 在 Laravel Blade 文件中的多个数组上使用 foreach 循环对齐 UI 元素时出现问题
- spring - 原生查询结果映射到spring jpa中的自定义对象
- c# - 使用 ms 访问从 MemoryStream 读取位图时抛出异常
- javascript - java脚本嵌套过滤函数
- c# - 当我尝试解析无效值时,Enum.ToObject 返回默认值
- node.js - 存在于 promise 对象的 then() 函数中的返回语句不向 alexa 模拟器返回值,但在外部 .then() 时工作