EDIT: Поскольку вы хотите другие столбцы и хотите сгруппировать, вы не можете использовать метод, который я изначально предлагал как есть. Вот новое решение, хотя генерируемый SQL не совсем велик:
from employee in employees
group employee by employee.department_id into grpEmployee
select new {
DepartmentId = grpEmployee.Key,
LastNames = string.Join(", ", employees.Where(e => e.department_id == grpEmployee.Key)
.OrderBy(e => e.last_name).Select(e => e.last_name))
}
Обратите внимание, что этот метод сочетает в себе оба запроса, как и лямбда-синтаксис.
Это должно сделать трюк. Мы выбираем все последние имена, а затем объединяем их в одну строку в качестве конечного результата.
string.Join("; ", (from employee in employees
where employee.department_id == 30
orderby employee.last_name
select employee.last_name))
Почему бы не использовать 'string.Join' ([Example] (http://www.dotnetperls.com/string-join))? –
Да, но что вы также хотите вернуть из таблицы другие столбцы? См. Обновление SQL. – uncoder