【发布时间】:2018-04-21 09:59:16
【问题描述】:
我需要一些带有parentChild 对象的输入,使用ASP.NET C# + Entity Framework。
目标:返回一个由parent和children组成的对象给ASP.NET View
我的班级(数据库表):
public class Organo
{
[Key]
public int id { get; set; }
public int key { get; set; }
public int parent { get; set; }
public string name { get; set; }
public string text { get; set; }
[NotMapped]
public List<Organo> OrganoChildrens { get; set; }
}
数据示例:
id | key | parent | name | text
----+-------+----------+--------+----------
1 1 0 A A
2 2 1 B B
3 3 1 C C
4 4 2 B1 B1
5 5 4 B1_1 B1_1
6 6 1 D D
我的控制器:
public async Task<ActionResult> index()
{
//get all data
var organos = await db.Organos.ToListAsync();
Organo organo_ = new Organo();
foreach (var item in organos)
{
//head of diagram
if(item.parent == 0)
{
organo_.id = item.id;
organo_.key = item.key;
organo_.parent = 0;
organo_.name = item.name;
organo_.text = item.text;
}
else
{
//child
Organo organoChild_ = new Organo();
organoChild_.id = item.id;
organoChild_.key = item.key;
organoChild_.parent = item.parent;
organoChild_.name = item.name;
organoChild_.text = item.text;
organo_.OrganoChildrens.Add(organoChild_);
}
}
return View(fishbone_);
}
但是这样我只能得到第一级的孩子。
我如何构建Parent -> Child1 -> Child2 of Child1... 的层次结构?
非常感谢
【问题讨论】:
-
当它是父级时,使用递归循环遍历父级的子级。
-
在第二个其他?可以给我一些想法吗?
-
图表只有一个头吗?
-
是的,只有一个头
标签: c# json asp.net-mvc-4 entity-framework-6