我正在尝试在MySQL数据库中实现ASP.NET Core Identity。我想在名为“aspnetuserclaims”的表中保存声明。我设法在MyContext中的 OnModelCreating()方法中为用户指定自定义表格,该方法继承自 IdentityDbContext 类:
modelBuilder.Entity<ApplicationUser>().ToTable("users").Property(p => p.Id).HasColumnName("Id");
但是,当我想对使用以下内容继承 IdentityUserClaim 的类进行相同操作时:
modelBuilder.Entity<ApplicationUserClaim>().ToTable("userclaims").Property(p => p.Id).HasColumnName("Id");
根本不起作用。
ApplicationUser 和 ApplicationUserClaim 都是干净的类,如下所示:
public class ApplicationUser : IdentityUser<string> {}
例外:
MySqlException:表'dbname.aspnetuserclaims'不存在
答案 0 :(得分:1)
IdentityUser
具有泛型类型重载。您使用的是IdentityUser<TKey>
,但如果您想要自定义类似索赔类的内容,则需要指定IdentityUser<TKey,TUserClaim,TUserRole,TUserLogin>
。
此外,IdentityDbContext
也有泛型类型重载,因此同样需要确保在那里使用正确的重载,即:IdentityDbContext<TUser,TRole,TKey,TUserClaim,TUserRole,TUserLogin,TRoleClaim,TUserToken>
。