【问题标题】:AspNet.Identity.Core 2 Add Custom fields to IdentityUser - Error Creating userAspNet.Identity.Core 2 将自定义字段添加到 IdentityUser - 创建用户时出错
【发布时间】:2020-07-11 01:43:45
【问题描述】:

我正在尝试向用户身份添加 3 个附加字段: aId (int), FirstName (string), LastName (string)

我创建了一个新模型,继承了 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);

错误:
{"找不到 EntityType 'API.Models.SysUser' 的映射和元数​​据信息。"}

我将 3 个字段添加到 aspnetusers 表中,并更新了实体。 我已验证属性与数据库列名匹配。

有人可以指点我正确的方向吗?

【问题讨论】:

  • aId 是否引用另一个表?

标签: .net asp.net-identity


【解决方案1】:

我能够解决这个问题。需要在 AuthContext.cs 中将 IdentityUser 更改为 SysUser。

public class AuthContext : IdentityDbContext<SysUser>

并更新我的 AuthRepo 中的 UserManager 变量:

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

【讨论】:

    猜你喜欢
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多