【发布时间】:2014-08-11 13:59:24
【问题描述】:
我有一个类,它是一个聚合根并代表一个人。一个人必须有一个 Title(Mr、Mrs、Ms 等),它是 Person 对象的一个属性。创建人员时,用户必须从下拉列表中选择一个标题,其内容通过另一个页面进行管理。
还有通过只读页面查看此信息的选项,因此通过使用下面的模型,我有“手头”的 ID 和名称,而不必离开并根据以下内容检索标题的 ValueName如果我要将 TitleId 添加为 Person 的属性而不是 Title,我必须做的就是标题 ID。
保存人员对象时,标题的 Id 作为人员的一部分被持久化并存储在 Person db 表中(包含标题的 db 表没有被触及)
在填充人员时,存储过程根据标题 ID 将人员连接到标题,并返回用于填充人员标题类的信息。
public class Person : IAggregateRoot, IPerson
{
public string Forename { get;set; }
public string Surname{ get;set; }
public ITitle Title { get;set; }
}
public class Title : IAggregateRoot , ITitle
{
public Guid Id {get;set;}
public string ValueName {get;set;}
}
我的问题是:从 DDD 的角度来看,是否可以使用此类结构并将聚合根对象嵌套在另一个聚合根对象中,因为它是“固定列表”或“查找值”并且还需要由管理员单独维护?
【问题讨论】:
标签: c# domain-driven-design aggregateroot