如何在 DDD 域模型中对层次关系进行建模?在我的应用程序中,我有一个组织实体,组织可以有部门,而部门又可以有子部门。嵌套深度是任意的。我应该如何设计我的实体和存储库?
问问题
1119 次
1 回答
4
一个简单的模型可能类似于:
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以了解如何存储和查询层次关系。
于 2012-05-01T16:49:44.433 回答