使用 UserManager 时如何包含与另一个实体的关系?

问题描述 投票:0回答:1

我正在使用 ASP Identity 的

UserManager
来获取特定角色的用户。

var members = await _userManager.GetUsersInRoleAsync("Member");
var leaders = await _userManager.GetUsersInRoleAsync("Leader");

我的问题是我的

User
实体与另一个实体有关系。通常我会在数据上下文中执行:

public async Task<IEnumerable<AppUser>> GetUsersAsync()
{
        return await _context.Users
            .Include(u => u.Projects)
            .Include(u => u.School)
            .ToListAsync();
}

但是

Include
没有
UserManager
方法。这里有什么替代方案?

c# asp.net-core asp.net-identity
1个回答
0
投票

只需继续使用您为数据上下文发布的相同语法即可。但这里使用您的原始用户列表,而不是从上下文中获取用户。

public async Task<IEnumerable<AppUser>> GetUsersAsync()
{
    return await members
        .Include(u => u.Projects)
        .Include(u => u.School)
        .ToListAsync();
}

这应该会为您提供之前从 userManager 获得的现有用户的所有相关实体。

UserManager
只是用户存储的包装,它根据角色为您提供一组不同的用户。

© www.soinside.com 2019 - 2024. All rights reserved.