Вы должны использовать
Permissions =
(from srp in DataSet.SubRolePermissions
join p in DataSet.Permissions on srp.PermiisonId equals p.Id
where srp.SubRoleId == sr.Id
select new Permission
{
Name = p.Name
}).ToList()
Разрешения - List<T>
, в то время как запрос возвращает IEnumerable<T>
. То же самое и в случае с SubRoles. Вам необходимо преобразовать в List<T>
, что можно сделать с помощью метода ToList()
Complete Query
Role =
(from u in DataSet.Users
join r in DataSet.Roles on u.RoleId equals r.Id
where u.Id == 1
select new Role
{
Name = r.Name,
SubRoles =
(from rsb in DataSet.RoleSubRoles
join sr in DataSet.SubRoles on rsb.SubRoleId equals sr.Id
where r.Id == rsb.RoleId
select new SubRole
{
Name = sr.Name,
EndPoint = sr.EndPoint,
Permissions =
(from srp in DataSet.SubRolePermissions
join p in DataSet.Permissions on srp.PermiisonId equals p.Id
where srp.SubRoleId == sr.Id
select new Permission
{
Name = p.Name
}).ToList()
}).ToList()
}).First()
};
Также обратите внимание, что роль представляет собой одна сущность, в то время как запрос возвращает коллекцию. Вам нужно сделать выбор, какая сущность из коллекции должна быть сохранена. Для примера кода выше, я использовал First()