asp.net C# + EF 사용하여 parentChild 개체가있는 일부 입력이 필요합니다.C#에서 sql db 부모 부모 자식 트리를 작성하십시오.
목적 :
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
내 컨트롤러 ASP.NET보기
내 클래스 (DB 테이블)에 부모와 자녀로 구성 객체를 반환 :
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_);
}
그러나이와 난 단지 ... 내가 부모의 계층 구조를 구축하는 방법을 아이들의 첫 번째 수준을 얻을 -
재귀를 사용하여 부모 인 경우 부모의 자식을 반복합니다. – reggaeguitar
두 번째 else? 제게 어떤 이데아를 주시겠습니까? – user2633804
하나의 다이어그램 헤드가 있습니까? – reggaeguitar