#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();