我有以下代码
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 reference
仅产生_roleManager.Roles.ToList()
方法,而不是ToListAsync()
所以我被迫将我的代码更改为
var roles = _roleManager.Roles;
然而现在它不再等待并且会导致意外行为,因为该方法本身是异步的。
问题:
无论如何,我仍然可以使用异步方法来实现上述
答案 0 :(得分:0)
据我所知,async方法不支持通过rolemanager获取所有角色。
您可以通过databasecontext访问角色来解决它:
var roles = await this._context.Roles.ToListAsync();