我正在使用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();
}

但是,对于UserManager,没有Include的方法.这里会有什么替代方案?

推荐答案

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

public async Task<IEnumerable<AppUser>> GetUsersAsync()
{
    return await _context.users
        .Include(u => u.Projects)
        .Include(u => u.School)
        .Where(u => members.Contains(m.Name)) //filter criteria...
        .ToListAsync();
}

这应该会从您先前从userManager获得的现有用户中获取所有相关实体. UserManager只是用户存储的包装器,它根据角色为您提供不同的用户集.

Csharp相关问答推荐

O(N)测试失败

AutoMapper -如何为两个不同的用例设置单个映射?

如何保持主摄像头视角保持一致?

try 还原包时出错:Dapper已经为System.Data.SQLClient定义了依赖项''''

Polly v8—使用PredicateBuilder重试特定的状态代码

XUNIT是否使用测试数据的源生成器?

注册所有IMediatR类

附加标题不起作用,而添加则起作用

为具有实体框架后端的Reaction项目 Select 正确的Visual Studio模板

C#Null判断处理失败

在C#中,非静态接口方法的抽象和虚拟是冗余的吗?

.NET 8在appsettings.json中核心使用词典URI、URI&>

如何从Entity Framework Core中填充ListIInterface

在等待OnGetAsync时打开Razor Page显示微调器

将C#类导入到PowerShell

Linq SELECT的多条指令

Xamarin.Forms中具有类似AspectFill的图像zoom 的水平滚动视图

如何在特定时间间隔运行多个后台任务?

C#中的逻辑运算符用作单词';is';and';and';

带有类约束的C#泛型