我正在尝试在mysql数据库中实现asp.net核心标识。我想将声明保存在名为“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”不存在
1条答案
按热度按时间7eumitmz1#
IdentityUser
具有泛型类型重载。你用的是IdentityUser<TKey>
,但是如果您想自定义类似claim类的内容,则需要指定IdentityUser<TKey,TUserClaim,TUserRole,TUserLogin>
.另外,
IdentityDbContext
也有泛型类型重载,因此同样地,您需要确保在那里使用正确的重载,即:IdentityDbContext<TUser,TRole,TKey,TUserClaim,TUserRole,TUserLogin,TRoleClaim,TUserToken>
.