2
如何在DDD域模型中建立層次關係?在我的應用程序中,我有一個組織實體,組織可以有分區和分區,可以有子分區。嵌套深度是任意的。我應該如何設計我的實體和存儲庫?如何爲DDD中的遞歸關係建模
如何在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;
}
}
有以及根據特定需求的其他方法。如果使用諸如NHibernate的ORM來實現存儲庫,請參閱this以瞭解如何存儲和查詢層次關係。