在Identity Core中加载自定义属性

时间:2017-11-21 07:20:06

标签: .net-core asp.net-identity

我创建了一个具有自定义属性的类,该类继承自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);

它没有在Attributes属性上加载值。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该共享_userManager.FindByNameAsync(username);的代码。我相信你没有加载相关的数据。这样的事情对你有用:

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

此处是文档的链接:Loading Related Data.