gpt4 book ai didi

domain-driven-design - DDD 哪个是根聚合根?

转载 作者:行者123 更新时间:2023-12-04 08:20:37 25 4
gpt4 key购买 nike

许多像订单和订单行这样的例子是有道理的,比如:
Order AR 包含 OrderLinesCustomer AR 包含 Orders .

问题是,什么是 AR 包含 Customer ?
我想它可以是“商店”之类的东西。

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

但是,如何获得商店?
如果是 AR (实体)它有一个 id,所以 shop.GetById(shopId) .如果我只有一家商店,这如何持久?

我应该有一张 table (商店)吗?Shop是一个内存对象,集合为 Customers ?

最佳答案

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

聚合是一组密切相关的实体和值对象。聚合在它们周围形成了一个一致性边界。 聚合根是该聚合中可全局寻址的根实体。所以在你的例子中 OrderOrderLines , Order确实可能是AR。
Customer另一方面,只会引用 Orders如果是单独的聚合,则按 ID。

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

关于domain-driven-design - DDD 哪个是根聚合根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34423613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com