gpt4 book ai didi

c# - 身份:为什么 user.roles 是空的?

转载 作者:太空狗 更新时间:2023-10-29 21:49:00 24 4
gpt4 key购买 nike

我有一个方法可以获取我在我的数据库中的所有用户,简单地说我这样做:

var allUsers = context.Users.ToList();

我无法弄清楚的是,当我调试 roles 属性时它是空的:

enter image description here

但在 dbo.UserRoles 中:

enter image description here

我在这里错过了什么?

编辑:

我的注册方式:

    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);
}

编辑 2:

当得到这样的角色时:

var roles  = context.Roles.ToList();

我可以看到所有的角色,我也可以看到哪些用户有特定的角色:

enter image description here

编辑 3:

尝试关闭和打开延迟加载

 this.Configuration.LazyLoadingEnabled = true;

this.Configuration.LazyLoadingEnabled = false;

仍然没有给我角色数据。

最佳答案

您必须像这样加载要与 Include 一起使用的相关实体:

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

然后您应该能够访问用户角色。

有关该主题的更多信息 here

关于c# - 身份:为什么 user.roles 是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39120490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com