2016-08-24 3 views
4

私は私のDBを持っているすべてのユーザーが、単純に私はこれを行うに置く取得する方法があります:私はそれを把握することはできませんどのようなアイデンティティ:なぜuser.rolesが空ですか?

var allUsers = context.Users.ToList(); 

は私が役割プロパティをデバッグするとき、それが空であることです:

enter image description here

が、中dbo.UserRoles:

enter image description here

私はここで何が欠けていますか?

EDIT:

私の登録方法:

public async Task<ActionResult> Register(RegisterViewModel model) 
    { 
     if (ModelState.IsValid) 
     { 
      var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName }; 
      var result = await UserManager.CreateAsync(user, model.Password); 
      if (result.Succeeded) 
      { 
       UserManager.AddToRole(user.Id, model.UserRole.ToString()); 

       return RedirectToAction("Index", "Home");     
      } 
      AddErrors(result); 
     } 

     // If we got this far, something failed, redisplay form 
     return PartialView("~/Views/Account/Register.cshtml",model); 
    } 

EDIT 2:

このような役割を取得する場合:私はすべての役割と私を見ることができます

var roles = context.Roles.ToList(); 

を特定の役割を持つユーザーを確認することもできます。

enter image description here

EDIT 3:

オフ遅延読み込みと

this.Configuration.LazyLoadingEnabled = true; 

this.Configuration.LazyLoadingEnabled = false; 

はまだ私の役割データを与えるものではありませんオンにしようとしました。

var allUsers = context.Users.Include(u => u.Roles).ToList(); 

その後、ユーザーの役割にアクセスすることができるはずです:あなたはあなたが使用したい関連のエンティティをロードする必要が

+0

聖なる牛、どこでも答えなしのような素晴らしい質問。なぜこれは難しいのですか? –

答えて

0

は、これまでのところ、私は私が望むこの彼らの方法を解決することができていません。それは作品arroundの私が仕事をした:

私は私にそうように、個々のユーザーの役割を得た方法で作成しました:

public string GetRole(string userId) 
    { 
     var role = UserManager.GetRoles(userId); 

     return role[0]; 
    } 

をして私の元getUserメソッドに私は私の最近開発された方法と呼ばれる:

public UserModel GetUsers() 
    { 
     var allUsers = context.Users.Include("Roles").ToList(); 

     var model = new UserModel 
     { 
      Users = allUsers.Select(x => new OverWatchUser 
      { 
       Email = x.Email, 
       EmailConfirmed = x.EmailConfirmed, 
       FirstName = x.FirstName, 
       LastName = x.LastName, 
       OrgId = x.OrgId, 
       Role = GetRole(x.Id) 

      }).ToList() 

     }; 

     return model; 
    } 

これは私が欲しいデータを提供しますが、私はこの汚い修正考えると、私はそこに誰かが問題の適切な解決策を持っている願っています。

2

は次のように含めます。そのトピックに関する

詳細情報here

+1

は動作していないようです。 – ThunD3eR

+0

これはうまくいきたいです。 –

関連する問題