В моем приложении у компании может быть много сотрудников, и у каждого сотрудника может быть несколько адресов электронной почты.Запрос Linq с подзапросом как значения, разделенные запятой
Схема базы данных относится к таблицам, как это:
Компания -> CompanyEmployeeXref -> Сотрудник -> EmployeeAddressXref -> Email
Я использую 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]"
...
Я знаю, что этот код не так, я думаю, что я пропускаю группу по, но она иллюстрирует точку. Я не уверен в синтаксисе. Возможно ли это? Спасибо за любую помощь.
У меня есть код, который делает это, но он будет выполнять новую партию для каждой компании в вашем случае. Я отправлю его завтра, если у кого-то есть что предложить. –