Предположим следующий простой дизайн таблицы:
Table Master (Id bigint PK, Message nvarchar (50))
Пример строки в Master
101, "Фу"
Таблица деталей (Идентификатор bigint PK, MasterId bigint FK для Master PK, Код nvarchar (5))
Примеры строк в деталях
1001, 101, "А"
1002, 101, "B"
1003, 101, "C"
Желаемый результат запроса L2S будет выглядеть примерно так:
Id, код (ы), сообщение
101, "A, B, C", "Foo"
Следующий запрос L2S дает мне то, что я хочу, но есть ли лучший способ выразить это?
from m in Master
where m.Id == 101
select new
{
mi.Id,
Codes = string.Join(",", (from c in Detail
where c.MasterId == m.Id
select c.Code).ToArray()),
mi.Message
}