C#SQL父子表选择查询帮助

Phi*_*hil 3 c# sql sql-server asp.net-mvc

我有两个表要从中获取数据.

让我们称他们为"父母"和"孩子"."父"表在"子"表中有许多记录.(一对多)

我的问题是我想找到一种有效的方法来显示两个表包含在我的ASP.NET MVC应用程序中的数据.我的方法是从"Parent"中选择所有记录,然后遍历每个记录,从"Children"中选择数据.

所以我需要帮助设计SQL Server 05的查询,它可以更有效地获取C#的数据,我计划创建类型类,"Parent"类将有一个"List",在我的View中我可以循环输出价值.

public class Parent_Type
{
    public string Name { get; set; }
    public List<Children_Type> Children { get; set; }
}


public class Children_Type
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

数据需要显示如下:("父"记录的名称,然后是"子"记录列表")

"家长123"

  • "孩子1"
  • "孩子2"
  • "孩子3"

"父母124"

  • "孩子1"
  • "孩子2"
  • "孩子3"

and*_*ows 5

我会立即提取所有数据,然后以编程方式运行它.

SELECT Parent.Id, Parent.Name FROM Parent 
LEFT OUTER JOIN
SELECT Child.Id AS ChildId, Child.Name AS ChildName FROM Child
ON
Child.ParentId = Parent.Id
ORDER BY Parent.Name
Run Code Online (Sandbox Code Playgroud)

当您获得数据时,将重复父项,因此您需要对其进行过滤.您可以通过提供父比较或通过for循环通过LINQ执行此操作.Itereate通过列表折叠在唯一的父级上,因为每条记录实际上代表一个孩子或无子女的父母.

有关LINQ"distinct"的信息,请点击此处.