如何使用带有ef和identity的asp.net核心在mysql中创建自定义userclaims表?

aor9mmx1  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(353)

我正在尝试在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”不存在

7eumitmz

7eumitmz1#

IdentityUser 具有泛型类型重载。你用的是 IdentityUser<TKey> ,但是如果您想自定义类似claim类的内容,则需要指定 IdentityUser<TKey,TUserClaim,TUserRole,TUserLogin> .
另外, IdentityDbContext 也有泛型类型重载,因此同样地,您需要确保在那里使用正确的重载,即: IdentityDbContext<TUser,TRole,TKey,TUserClaim,TUserRole,TUserLogin,TRoleClaim,TUserToken> .

相关问题