Consulta Linq com subconsulta como valores separados por vírgula

No meu aplicativo, uma empresa pode ter muitos funcionários e cada funcionário pode ter vários endereços de email.

O esquema do banco de dados relaciona as tabelas assim:

Empresa -> CompanyEmployeeXref -> Funcionário -> EmployeeAddressXref -> Email

Estou usando o Entity Framework e quero criar uma consulta LINQ que retorne o nome da empresa e uma lista separada por vírgulas dos endereços de email dos funcionários. Aqui está a consulta que estou tentando:


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]"

...

Sei que esse código está errado, acho que estou perdendo um grupo, mas ilustra o ponto. Não tenho certeza da sintaxe. Isso é possível? Obrigado por qualquer ajuda.

questionAnswers(2)

yourAnswerToTheQuestion