【发布时间】:2018-02-05 22:18:34
【问题描述】:
我想知道有一个规则可以组织实体之间的关系
例如,如果 a 有以下两个实体
public class Project : IAggregateRoot<long?>, IAccountEntity
{
protected virtual IList<Phase> Phases { get; set; }
}
public class Phase : IAggregateRoot<long?>, IAccountEntity
{
public virtual IList<Task> Tasks { get; set; }
[RequiredAspect]
public virtual Project Project { get; set; }
}
在这个例子中,我有一个项目,项目有很多阶段,同时阶段引用了项目,它有很多任务 strong> 我想知道一个阶段或任务是否必须知道与哪个项目相关?或者任务必须知道与哪个阶段相关?或者如果阶段引用该项目,我们必须指定该项目有许多阶段。
【问题讨论】:
-
如果您不知道
Phase是否需要知道它属于哪个Project,我们无法告诉您。一个Task,考虑到它是Phase的一个孩子,另一方面,不需要直接知道(因为它可以通过Phase关系知道) -
这一切都取决于您的业务需求。如果您没有给您任何业务需求,那么您需要根据您要解决的问题来弥补它们。没有一种正确的方法可以做到这一点。这完全取决于您要解决的问题。
标签: c# oop domain-driven-design