LINQ to SQL:选择一对多关系

时间:2011-03-29 16:14:39

标签: linq nested one-to-many

我有两张有一对多关系的表格(文章和标签)。

我记得在某处我可以从该关系中创建嵌套对象/数组/等。我希望以(JSON格式)格式输出:

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

我正在创建一个内部知识库系统,其列表视图类似于堆栈溢出的首页(这就是我想要显示标记的方式)。

我该怎么做呢?一个子查询?感谢。

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,那么您正在寻找SelectMany函数,它可以让您“展开”像您这样的嵌套结构。 SelectMany 确实在查询语法中通过子查询执行:

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

以方法形式:

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