代码之家  ›  专栏  ›  技术社区  ›  Morasiu

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

  •  0
  • Morasiu  · 技术社区  · 8 年前

    我试图在mysql数据库中实现asp.net核心标识。我想将声明保存在名为different that的表中 “aspnetuserclaims” . 我设法为在我的 onModelCreating() myContext中继承自 标识DBContext 班级:

     modelBuilder.Entity<ApplicationUser>().ToTable("users").Property(p => p.Id).HasColumnName("Id");
    

    但是,当我想对继承表单的类执行同样的操作时 身份声明 使用:

    modelBuilder.Entity<ApplicationUserClaim>().ToTable("userclaims").Property(p => p.Id).HasColumnName("Id");
    

    一点用都没有。

    两个 应用程序用户 应用程序声明 干净的班级是这样的吗:

      public class ApplicationUser : IdentityUser<string> {}
    

    例外:

    mysqlexception:表'dbname.aspnetuserclaims'不存在

    1 回复  |  直到 8 年前
        1
  •  1
  •   Chris Pratt    8 年前

    IdentityUser 具有泛型类型重载。你在用 IdentityUser<TKey> ,但如果要自定义claim类之类的内容,则需要指定 IdentityUser<TKey,TUserClaim,TUserRole,TUserLogin> .

    另外, IdentityDbContext 也有泛型类型重载,因此同样,您需要确保在那里使用正确的重载,即: IdentityDbContext<TUser,TRole,TKey,TUserClaim,TUserRole,TUserLogin,TRoleClaim,TUserToken> .

    推荐文章