我正在建模一个库存应用程序,其中的项目被管理和分组到一个容器中,并分配一个唯一的编号,该编号将标识库存实例,并可以使用仓库中的RF轻松管理。在这些场景中,一个容器可以容纳另一个或更多的容器,这些容器将指向父容器以形成分层顺序或父子关系。所以我的问题是,如果我通过引用将容器建模为具有子容器集合的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);
}
}发布于 2020-06-24 11:10:27
如果您真的在处理物理仓库,那么您将希望听到至少一个关于DDD在该域中如何工作的Greg Young's讨论。
简而言之:现实世界就是一本记录簿;您的数据库只是缓存了这些信息的副本。您不会拒绝向您描述真实世界的消息,而是接受新的信息(假设来源是可靠的),并在您的数据表明某些“不变”被违反时发布上报报告。
好的,回答你的问题
https://stackoverflow.com/questions/62542950
复制相似问题