En mi aplicación, una empresa puede tener muchos empleados y cada empleado puede tener varias direcciones de correo electrónico.Consulta de Linq con subconsulta como valores separados por comas
El esquema de base de datos relaciona las tablas como esta:
empresa -> CompanyEmployeeXref -> Empleado -> EmployeeAddressXref -> Correo electrónico
estoy usando Entity Framework y quiero crear una consulta LINQ que devuelve el nombre de la compañía y una lista separada por comas de sus direcciones de correo electrónico. Ésta es la consulta que intento:
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]"
...
Sé que este código es incorrecto, creo que me falta por un grupo, pero ilustra el punto. No estoy seguro de la sintaxis. ¿Esto es posible? Gracias por cualquier ayuda.
Tengo un código que hace esto pero ejecutaría un nuevo lote para cada compañía en su caso. Lo publicaré mañana a menos que alguien tenga algo mejor que sugerir. –