Получить вложенные роли пользователей из таблицы пользователей

#c# #linq

#c# #linq

Вопрос:

Я делаю запрос из базы данных, и там есть вложенные таблицы. Мой запрос выглядит так:

 System.Collections.Generic.IEnumerablelt;ApplicationUsergt; applicationUsers = await _userManager.Users  .Include(u =gt; u.UserRoles).ToListAsync();  

Я хотел бы получить все идентификаторы ролей пользователей и имена ролей, поэтому я сделал это:

 IEnumerablelt;Listlt;UserRolegt;gt; userRoles = applicationUsers.Select(person =gt; person.UserRoles.Select(u =gt; new UserRole  {  Id = u.RoleId,  RoleName = u.Role.ToString(),  }).ToList());  

Однако в качестве вывода я получаю IEnumerablelt;Listlt;UserRolegt;gt; , когда мне это нужно Listlt;UserRolegt; . Что я делаю не так?

Роль пользователя.cs:

 public class UserRole  {  public string Id { get; set; }  public string RoleName { get; set; }  public bool Successful { get; set; }   }  

Комментарии:

1. Попробуйте заменить first select на SelectMany.

Ответ №1:

Воспользуйся

 Listlt;UserRolegt; userRoles = applicationUsers.SelectMany(person =gt; person.UserRoles).ToList();