在标识核心中加载自定义属性



我创建了一个具有自定义属性的类,该属性继承自IdentityUser类。

public class AppUser:IdentityUser
{
    public AppUser(string userName) : base(userName)
    {
        this.UserName = userName;
    }
    public AppUser()
    {
    }
    public string  FirstName { get; set; }
    public string  LastName { get; set; }
    public string DisplayName { get; set; }
    public DateTime DateOfBirth { get; set; }
    public string Gender { get; set; }
    public List<UserAttribute> Attributes { get; set; }
}
public class UserAttribute
{
    [Key]
    public string UserID { get; set; }
    public string Key { get; set; }
    public string Value { get; set; }
}

当我使用时,

var user = await _userManager.FindByNameAsync(username);

它不会加载属性属性上的值。

提前谢谢。

您应该共享 _userManager.FindByNameAsync(username); 的代码。我相信您没有加载相关数据。这样的东西应该适合你:

using (var context = new YouDBContext())
{
    var user = context.Users
        .Where(user => user.UserName == userName)
        .Include(user => user.Attributes)
        .ToListAsync();
}

这里是文档的链接:加载相关数据。

最新更新