C# 正在从用户获取角色名称?

C# 正在从用户获取角色名称?,c#,asp.net,asp.net-web-api2,C#,Asp.net,Asp.net Web Api2,在WebAPI项目中,我希望返回用户所属的角色名(他们一次只能在一个角色中) 我目前有: var users = UserManager.Users.Select(u => new { Id = u.Id, Email = u.Email, Role = u.Roles.FirstOrDefault().RoleId }); 显然,这只返回角色的id。如何在单行程序类型中获取角色名称?您可以尝试使用(假设您的角色类有一个名称字段): 假设Role是enum,您可以使用它来获取enum的名

在WebAPI项目中,我希望返回用户所属的角色名(他们一次只能在一个角色中)

我目前有:

var users = UserManager.Users.Select(u => new { Id = u.Id, Email = u.Email, Role = u.Roles.FirstOrDefault().RoleId });
显然,这只返回角色的id。如何在单行程序类型中获取角色名称?

您可以尝试使用(假设您的
角色
类有一个
名称
字段):


假设
Role
enum
,您可以使用它来获取enum的名称

var users = UserManager.Users.Select(u => 
    new { 
        Id = u.Id, 
        Email = u.Email, 
        Role = Enum.GetName(typeof(Role),u.Roles.FirstOrDefault().RoleId) });

Roles.Find(r=>r.Id==RoleId).Name
iCollection不包含Find..(Role=u.Roles.Find(r=>r.Id==RoleId.Name)的定义。如果您有“角色Id”,只需RoleManager.FindById(yourRoleId)即可work@sepehr运气不好:(@brother,你用的是
Microsoft.AspNet.Identity.rolemager吗?
asp.net Identity
?:)随着微笑的改善,“IdentitutyUserRole不包含名称的定义”:-(我得到一个“角色在当前上下文中不存在”?你检查拼写了吗?
Role
是类还是枚举?
var users = UserManager.Users.Select(u => 
    new { 
        Id = u.Id, 
        Email = u.Email, 
        Role = Enum.GetName(typeof(Role),u.Roles.FirstOrDefault().RoleId) });