LINQ to SQL: выбор отношения один ко многим - PullRequest
0 голосов
/ 29 марта 2011

У меня есть две таблицы (статьи и теги), которые имеют отношение один ко многим.

Я помню, как где-то видел, что я могу создавать вложенные объекты / массивы / и т.д. из этих отношений. Вывод, который я хотел бы в формате, таком как (в формате JSON):

{1 : {
    id : 1,
    title : 'article title',
    tags : ({
        id : 16,
        tagname : 'first tag'
    },{
        id : 23,
        tagname : 'another tag'
    })
}

Я создаю внутреннюю систему базы знаний с представлением списка, похожим на первую страницу переполнения стека (именно так я бы хотел отображать теги).

Как бы я поступил так? Подзапрос? Спасибо.

1 Ответ

2 голосов
/ 29 марта 2011

Если я правильно понимаю ваш вопрос, вы ищете функцию SelectMany, которая позволит вам «развернуть» вложенные структуры, подобные вашей. SelectMany действительно действительно выполняется в синтаксисе запроса подзапросом:

IEnumerable<Tag> = 
    from article in Articles
    from tag in article.Tags
    select tag;

В форме метода:

IEnumerable<Tag> tags = Articles.SelectMany(a => a.Tags);
...