2017-11-21 11 views
0

私は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プロパティに値をロードしていません。

ありがとうございます。

+0

はなぜあなたの代わりに属性の主張を使用していませんの? –

+0

これらのデータを外部で使用したいと考えています。そして、特定のテーブル構造を使用する必要があります。 –

+0

efコアは遅延読み込みのため、属性にクエリを含める必要があります。 'userManager.Users.Include(" Attributes ")のようなものです。どこで();' –

答えて

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.

関連する問題