【问题标题】:asp.net identity 3 does not support async for List of Rolesasp.net identity 3 不支持角色列表的异步
【发布时间】:2015-12-29 13:15:16
【问题描述】:

我有以下代码

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;

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

问题:

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

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc asp.net-identity-3


    【解决方案1】:

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

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

    var roles = await this._context.Roles.ToListAsync();
    

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 2014-12-25
      • 2013-10-28
      • 2019-04-11
      • 2016-07-25
      • 2016-02-28
      相关资源
      最近更新 更多