Linq-запрос с подзапросом в виде значений, разделенных запятыми

В моем приложении у компании может быть много сотрудников, и у каждого сотрудника может быть несколько адресов электронной почты.

Схема базы данных связывает таблицы следующим образом:

Компания -> CompanyEmployeeXref -> Сотрудник -> EmployeeAddressXref -> Электронная почта

Я использую Entity Framework и хочу создать запрос LINQ, который возвращает название компании и разделенный запятыми список адресов электронной почты ее сотрудника. Вот запрос, который я пытаюсь:


from c in Company
join ex in CompanyEmployeeXref on c.Id equals ex.CompanyId
join e in Employee on ex.EmployeeId equals e.Id
join ax in EmployeeAddressXref on e.Id equals ax.EmployeeId
join a in Address on ax.AddressId equals a.Id
select new {
              c.Name,
              a.Email.Aggregate(x=>x + ",")
           }


Desired Output:

"Company1", "[email protected],[email protected],[email protected]"

"Company2", "[email protected],[email protected],[email protected]"

...

Я знаю, что этот код неправильный, я думаю, что пропускаю группу, но это иллюстрирует суть. Я не уверен в синтаксисе. Это вообще возможно? Спасибо за любую помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос