Asp.Net .Net 5 Lambda LINQ 获取特定角色的用户数

Asp.Net .Net 5 Lambda LINQ get the number of users in a particular role

我正在使用 Asp.Net .Net5 和 Entity framework 5。我正在尝试计算基本用户的数量。 table aspnetuser 通过 aspnetuserRoles link table.

通过多对多关系连接到 aspnetRoles

我有 3 table

  1. aspnetuser

  2. aspnetroles

  3. aspnetuserRoles = link table

    public int GetNumberOfActiveBasicUsers()
    {
        var users = _context.Users
            .Where(u => u.IsEnabled == true)
            .Where(u => u.UserName != "AdminUser")
            .Include(r => r.UserRoles)
            .ThenInclude(r => r.Role)
    
            //not sure what to put here
    
    
            .Count();  
    
         return users;
     }
    

aspnetuser table

id | username
--------------
1  | Jim
2  | Harry
3  | James
3  | Susan

aspnetRoles

id | name
----------
1  | admin
2  | standard
3  | Basic

aspnetuserRoles // link table

userId | roleId
----------------
   1   |   1
   2   |   2
   3   |   3
   4   |   3

代码应该 return 返回值为 2,因为有 2 个基本用户。

试试这个

return _context.UserRoles
        .Where(ur => ur.User.IsEnabled && ur.Role.Name== "Basic")
        .Count();