2011-08-25 3 views

답변

0

같이 자체 참조 데이터베이스 인 POCO을 반환하는 쿼리/방법을 작성하는 방법은 첫째로 당신이 평평한 클래스 매핑 것이다 돌아갑니다. 예. db.Fetch<CategoryDb>("select * from categories");

public class CategoryDb { 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public int ParentCategoryId { get; set; } 
} 

여기서부터는 자체적으로 참조되는 새 Object를 만듭니다. (당신은의 [결과] 속성을 갖는 ParentCategory와 기존 개체를 사용할 수 있습니다.)

public class Category { 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public Category ParentCategory { get; set; } 
} 

그런 다음이 걸릴 수와 중첩 된 목록으로 단순 목록을 변환합니다. 나는 이것을 할 수있는 어딘가에 코드를 가지고 있지만이 컴퓨터에서는 찾을 수 없다. 나는 내일 코드의 링크로 업데이트 할 것이다.

+0

권장 사항대로 완료하면이 기능이 작동하는 것 같습니다. 관심을 가져다 줄 테니 무슨 일이 일어나는지 보자. var steps = stepRepo.GetAll(). ToList(); var parents = steps.Where (x => x.ParentID == 0) .ToList(); parents.ForEach (x => x.Children = steps.Where (y => y.ParentID == x.ID)); – Jon