AspNet.Identity.Core 2 将自定义字段添加到 IdentityUser - 创建用户时出错
AspNet.Identity.Core 2 Add Custom fields to IdentityUser - Error Creating user
我正在尝试向用户身份添加 3 个附加字段:
aId(整数)、名字(字符串)、姓氏(字符串)
我新建了一个模型,继承了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 table 并且我更新了实体。
我已验证属性与数据库列名匹配。
有人能给我指出正确的方向吗?
我能够解决这个问题。需要在 AuthContext.cs.
中将 IdentityUser 更改为 SysUser
public class AuthContext : IdentityDbContext<SysUser>
并更新我的 AuthRepo 中的 UserManager 变量:
_userManager = new UserManager<SysUser>(new UserStore<SysUser>(_ctx));
我正在尝试向用户身份添加 3 个附加字段: aId(整数)、名字(字符串)、姓氏(字符串)
我新建了一个模型,继承了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 table 并且我更新了实体。 我已验证属性与数据库列名匹配。
有人能给我指出正确的方向吗?
我能够解决这个问题。需要在 AuthContext.cs.
中将 IdentityUser 更改为 SysUserpublic class AuthContext : IdentityDbContext<SysUser>
并更新我的 AuthRepo 中的 UserManager 变量:
_userManager = new UserManager<SysUser>(new UserStore<SysUser>(_ctx));