【发布时间】:2020-06-23 20:09:30
【问题描述】:
我正在建模一个库存应用程序,其中管理项目并将其分组到一个容器中,并分配一个唯一编号,该编号将标识库存实例,并且可以使用仓库中的 RF ID 轻松管理。在这些场景中,一个容器可以容纳另一个或多个容器,这些容器将指向父容器以形成层次顺序或父子关系。所以我的问题是,如果我将容器建模为 AggregateRoot,并通过引用包含一组子容器,它会违反 DDD 规则。处理这种方式的原因是由于交易边界,当子容器通过父 RF ID 扫描移动或添加到父容器时,我可以调整库存移动或管理数量。这是我的示例代码
public class Container:AggregateRoot
{
public virtual string Id{get;protected set;}
public virtual ScanId {get;protected set;}
public List<Container> ChildContainers {get;set;}
public void Detach(Container containerToAttach){
//Todo Adjustments
ChildContainers .Remove(containerToAttach);
}
public void Attach(Container containerToAttach){
//Todo Adjustments
ChildContainers .Add(containerToAttach);
}
}
【问题讨论】:
标签: c# domain-driven-design aggregateroot