有人可以告诉你是否有办法让所有用户在ASP.NET Identity 2中异步?
在UserManager.Users
中没有任何异步或找到所有异步或同样的somwething
答案 0 :(得分:26)
无法直接与UserManager
类异步执行此操作。您可以将它包装在您自己的异步方法中:(这可能有点邪恶)
public async Task<IQueryable<User>> GetUsersAsync
{
return await Task.Run(() =>
{
return userManager.Users();
}
}
或使用ToListAsync
扩展方法:
public async Task<List<User>> GetUsersAsync()
{
using (var context = new YourContext())
{
return await UserManager.Users.ToListAsync();
}
}
或直接使用您的上下文:
public async Task<List<User>> GetUsersAsync()
{
using (var context = new YourContext())
{
return await context.Users.ToListAsync();
}
}
答案 1 :(得分:0)
要扩展.NET Core 2.1的DavidG's答案,您将需要使用IdentityUser
而不是User
,而且您将必须直接使用上下文。
public async Task<List<IdentityUser>> GetUsersAsync()
{
using (var context = new ApplicationDbContext())
{
return await context.Users.ToListAsync();
}
}