LINQ到SQL:选择一对多关系

LINQ到SQL:选择一对多关系,linq,nested,one-to-many,Linq,Nested,One To Many,我有两个具有一对多关系的表(文章和标签) 我记得在某个地方看到,我可以根据这种关系创建嵌套对象/数组等。我想要的输出格式如下(JSON格式): 我正在创建一个内部知识库系统,其列表视图类似于stack overflow的首页(这是我希望显示标记的方式) 我该怎么做呢?子查询?谢谢。如果我正确理解了你的问题,你正在寻找SelectMany函数,它可以让你像你的一样“展开”嵌套结构SelectMany确实是由子查询以查询语法执行的: IEnumerable<Tag> = fro

我有两个具有一对多关系的表(文章和标签)

我记得在某个地方看到,我可以根据这种关系创建嵌套对象/数组等。我想要的输出格式如下(JSON格式):

我正在创建一个内部知识库系统,其列表视图类似于stack overflow的首页(这是我希望显示标记的方式)


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

如果我正确理解了你的问题,你正在寻找
SelectMany
函数,它可以让你像你的一样“展开”嵌套结构
SelectMany
确实是由子查询以查询语法执行的:

IEnumerable<Tag> = 
    from article in Articles
    from tag in article.Tags
    select tag;
IEnumerable=
从文章到文章
来自article.Tags中的tag
选择标签;
方法形式:

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

因此,要使其正常工作,我需要正确设置.dbml文件?是的。然而,GUI应该可以正常工作。(您使用的是什么版本的VS?)使用.dbml文件的讨厌替代方法:使用ADO.NET(和手写SQL)手动加载东西,并使用Linq to对象。如果您的dbml文件设置正确,您应该能够完美地完成这项工作。您需要用最小到最大的单位来定义它:定义如何将标记对象转换为您想要的JSON字符串,然后定义如何根据标记对象的转换方法将文章对象转换为您想要的JSON字符串。好的,我终于得到了上面的代码来返回标记,但是如何获得整个文章+标记结果集?
IEnumerable<Tag> tags = Articles.SelectMany(a => a.Tags);