无法从Identity v2中的IdentityUserRole导航到角色名称

Ale*_*sko 6 asp.net-identity

在ASP Identity v2之前,您可以这样做..

var context = new ApplicationDbContext();

var role = context.Users.FirstOrDefault().Roles.Single(p => p.Role.Name == "Some role name");
Run Code Online (Sandbox Code Playgroud)

一旦我升级到Identity v2,我的应用程序中的这样的行就停止了编译.IdentityUserRole上不再有Role属性,因此要查找"Administrators"角色中的所有用户并不容易.

我知道还有其他方法可以在一个角色中找到用户,但我的需求是不同的.这是一个简化的示例,但我需要构建一个具有特定角色信息的特定用户列表,如下所示:

var data = context.Users.Select(p => new
{
    Administrator = p.Roles.Any(role => role.Role.Name == "Administrator"),
    ServiceProvider = p.Roles.Any(role => role.Role.Name == "ServiceProvider"),
    Lender = p.Roles.Any(role => role.Role.Name == "Lender"),
    Inspector = p.Roles.Any(role => role.Role.Name == "Inspector")
});
Run Code Online (Sandbox Code Playgroud)

使用Identity v2似乎不再可能进行此类查询.

Hao*_*ung 1

我们可能会在角色管理器上添加一个新的帮助器方法,以使所有用户都处于一个角色中。我们无法同时保留用户和角色的导航属性,因为这会导致两个泛型类型的循环引用。这应该在 2.1 版本中添加。