Как создать пользовательскую таблицу UserClaims в MySQL, используя ASP.NET Core с EF и Identity? - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь реализовать ASP.NET Core Identity в моей базе данных MySQL.Я хочу сохранить заявки в таблице с именем, отличным от "aspnetuserclaims" .Мне удалось указать пользовательские таблицы для пользователей, использующих это в моем методе OnModelCreating () в MyContext, который наследуется от IdentityDbContext class:

 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 Ответ

0 голосов
/ 05 июня 2018

IdentityUser имеет перегрузки универсального типа.Вы используете IdentityUser<TKey>, но если вы хотите настроить что-то вроде класса утверждений, вам нужно указать IdentityUser<TKey,TUserClaim,TUserRole,TUserLogin>.

. Кроме того, IdentityDbContext также имеет перегрузки универсального типа, так что вам также нужночтобы убедиться, что вы используете правильную перегрузку, а именно: IdentityDbContext<TUser,TRole,TKey,TUserClaim,TUserRole,TUserLogin,TRoleClaim,TUserToken>.

...