LINQ to SQL, агрегация результата подзапроса - PullRequest
0 голосов
/ 05 января 2011

Предположим следующий простой дизайн таблицы:

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
    }

1 Ответ

1 голос
/ 05 января 2011

Purrrrfect. Я бы сделал то же самое, за исключением использования синтаксиса метода. Кажется более "естественным" для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...