Как pNet .Identity.Core 2 Добавить настраиваемые поля в IdentityUser - Ошибка создания пользователя - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь добавить 3 дополнительных поля к личности пользователя: aId (int), FirstName (строка), LastName (строка)

Я создал новую модель, наследуя IdentityUser:

public class SysUser : IdentityUser
{
    public int aId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public SysUser() { }
}

У меня возникает ошибка при попытке зарегистрировать нового пользователя:

public async Task<IdentityResult> RegisterUser(UserModel userModel)
    {
        SysUser user = new SysUser
        {
            UserName = userModel.UserName,
            Email = userModel.Email,
            FirstName = userModel.FirstName,
            LastName = userModel.LastName),
            aId = userModel.aId
        };
            
        var result = await _userManager.CreateAsync(user, userModel.Password);
        if (!String.IsNullOrEmpty(userModel.RoleName))
            _userManager.AddToRole(user.Id, userModel.RoleName);
        return result;
    }

Я получаю сообщение об ошибке в этой строке:

var result = await _userManager.CreateAsync(user, userModel.Password);

error: {"Не удалось найти информацию о сопоставлении и метаданных для EntityType 'API.Models.SysUser'."}

Я добавил 3 поля в таблицу aspnetusers и обновил объект. Я проверил, что свойства соответствуют имени столбца базы данных.

Может ли кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 10 июля 2020

Я смог это исправить. Необходимо изменить IdentityUser на SysUser в AuthContext.cs.

public class AuthContext : IdentityDbContext<SysUser>

и обновить переменную UserManager в моем AuthRepo:

_userManager = new UserManager<SysUser>(new UserStore<SysUser>(_ctx));
...