2016-03-10 5 views
0

В проекте WebAPI я хочу вернуть имя роли, членом которой является пользователь (они могут быть только в 1 роли за раз).Получение имени роли у пользователя?

настоящее время у меня это:

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

очевидно, что это только возвращает идентификатор роли. Как я могу получить имя роли в однострочном типе?

+0

'Роли .Find (r => r.Id == RoleId) .Name' ...? –

+0

.. 'iCollection не содержит defination for Find ..' (Role = u.Roles.Find (r => r.Id == RoleId) .Name) – brother

+0

Если у вас есть «id роли», просто RoleManager .FindById (yourRoleId) должен работать – sepehr

ответ

0

Вы можете попробовать с (при условии, что ваш Role класса есть Name поля):

var users = UserManager.Users.Select(
     u => new { Id = u.Id, 
        Email = u.Email, 
        Role = u.Roles.FirstOrDefault().Name 
        }); 
+0

«IdentutyUserRole не содержит defnition for Name». :-( – brother

0

Предполагая, что Role является enum вы можете использовать это, чтобы получить имя из перечисления

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

Я получаю «Роль не возбуждает в текущем контексте»? – brother

+0

Вы проверяли орфографию? Является ли «Роль» классом или перечислением? –

Смежные вопросы