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.