0

我有以下代码

private readonly RoleManager<IdentityRole> _roleManager;

private async Task DoStuff(MyViewModel viewModel)
{
    var roles =  await _roleManager.Roles;
    var mylist = await _myRepository.SelectAll();
}

但是角色管理器支持的唯一方法是

public virtual IQueryable<TRole> Roles { get; }

而不是异步方法。

Github参考

导致只有一个_roleManager.Roles.ToList()方法而不是一个ToListAsync()

所以我不得不将我的代码更改为

 var roles =  _roleManager.Roles;

但是现在它不再等待并且会导致意外行为,因为方法本身是异步的。

问题:

无论如何我仍然可以对上述方法使用异步方法

4

1 回答 1

0

据我所知,不支持异步方法通过角色管理器获取所有角色。

您可以通过数据库上下文访问角色来解决它:

var roles = await this._context.Roles.ToListAsync();
于 2016-11-22T13:24:15.960 回答