2012-05-01 3 views
2

DDD 도메인 모델에서 계층 관계를 어떻게 모델링 할 수 있습니까? 내 앱에는 조직 엔티티가 있고 조직은 부서를 가질 수 있으며 부서는 하위 부문을 가질 수 있습니다. 중첩 깊이는 임의적입니다. 엔티티와 리포지토리는 어떻게 디자인해야합니까?DDD에서 재귀 관계를 모델링하는 방법

public class Organization : Division 
{ 
    public Organization(string name) 
    : base(name) 
    { 
    } 
} 

public class Division 
{ 
    public Division(string name, Division parent = null) 
    { 
    this.Name = name; 
    this.Parent = parent; 
    } 
    public string Name { get; private set; } 
    public Division Parent { get; private set; } 
    public ICollection<Division> Divisions { get; private set; } 
    public Division AddDivision(string name) 
    { 
    var division = new Division(name, this); 
    this.Divisions.Add(division); 
    return division; 
    } 
} 

뿐만 아니라 특정 요구에 따라 다른 방법이 있습니다

답변

4

간단한 모델은 같은 것을 볼 수 있었다. 리포지토리를 구현하기 위해 NHibernate와 같은 ORM을 사용한다면 this을보고 계층 적 관계를 저장하고 쿼리하는 방법을 살펴보십시오.

관련 문제