当前位置:  开发笔记 > 编程语言 > 正文

DDD哪个是根聚合根?

如何解决《DDD哪个是根聚合根?》经验,为你挑选了1个好方法。

许多例如订单和订单行都是有道理的,例如:

OrderAR包含OrderLines Customer在一个AR包含Orders.

问题是,包含的AR是什么Customer?我猜它可能像"商店".

所以shop.AddCustomer(customer)......

但是,如何去商店?如果它是AR(实体),它有一个id,所以shop.GetById(shopId).如果我只有一个商店,这如何与持久性一起工作?

我应该有一张桌子(商店)吗? Shop是一个内存中的对象,有一个集合Customers



1> theDmi..:

那你错了.聚合不包含其他聚合!他们只能通过ID引用它们.

聚合是一组密切相关的实体和值对象.聚合形成了它们周围的一致性边界.该聚合根是在骨料是全局寻址根实体.所以在你的例子中,OrderOrderLines,Order确实可能是AR.

Customer另一方面,Orders如果它是一个单独的聚合,则只能通过ID 引用.

要检索聚合,通常使用存储库.通过指定聚合的ID或其他一些合适的搜索参数,可以通过存储库加载聚合.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有