|
|
1
5
我将一次提取所有数据,然后以编程方式运行它。
当你取回数据时,父母会重复,所以你需要过滤掉它。您可以通过LINQ提供父级比较或通过for循环来实现这一点。它通过折叠在唯一父级上的列表来创建,因为每个记录实际上都代表一个子级或无子级父级。 关于Linq的“distinct”的信息是 available here . |
|
|
2
2
好吧,您总是可以编写一个查询,它将返回两个表之间的联接:
但在本例中,您将得到一个“扁平”行集,其中父元素的值将为其每个子元素重复,显然(标准的SQL连接行为)。
正如评论中指出的,如果使用
第二种选择是使用ADO.NET查询返回两个结果,基本上-类似于
但是接下来您需要解析响应中的两个结果集,将子记录与它们各自的父记录关联起来,并做更多的工作。 第三种选择是在SQL Server中创建一个“for xml”查询,该查询将返回一个XML文档,表示单个XML文档中父记录和子记录的层次结构。
无论哪一个最适合你-选你的吧! 马克 |
|
|
3
1
如果要存储和检索继承数据,可以在单个表中执行此操作,并查看SQL Server CTE表达式(CTE)。 这里的一个例子 http://msdn.microsoft.com/en-us/library/ms190766.aspx |
|
|
4
1
你不是很清楚地问了一个你刚刚提到的问题,我想这就是为什么有人投了反对票,但是一个评论会很好。如果您想知道要使用什么SQL签出,可以使用任何方法 Select Parent Record With All Children in SQL 另一种方法(某些ORM使用)是进行两次选择。一个用于所有父级,一个用于所有子级,然后将它们联接到应用程序内存中,而不是数据库服务器上。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |