Как я могу удалить электронную почту и другие дополнительные поля из таблицы пользователя в шаблоне ASP. NET? - PullRequest
0 голосов
/ 12 января 2020

У меня есть ASP. NET шаблонный проект, и логин / регистр пользователя должен быть основан на OTP-коде. Таким образом, в таблице User есть несколько избыточных полей, включая Email и IsEmailConfirmed.

Я попытался не наследовать моего пользователя от abpUser, затем получил ошибку в моем UserManager, который наследуется от AbpUserManager. Похоже, что все привязано к AbpUser и AbpUserBase.

Я знаю, что могу переопределить методы AbpUserManager и, возможно, поставить некоторые значения по умолчанию для этих полей. Но есть ли чистый способ избавиться от этих полей?

1 Ответ

2 голосов
/ 12 января 2020

Вы можете использовать Fluent API в методе OnModelCreating вашего DbContext.

protected override void OnModelCreating(ModelBuilder builder)
{
    base.OnModelCreating(builder);

    builder.Entity<CustomUser>().Ignore(x => x.Email);
    builder.Entity<CustomUser>().Ignore(x => x.EmailConfirmed);
}

Это приведет к тому, что эти поля не будут отображены. Однако они все еще будут частью вашего CustomUser класса, потому что они унаследованы от IdentityUser. Обратите внимание, что это может нарушить некоторые методы UserManager (например, FindByEmailAsync).

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...