gpt4 book ai didi

oop - 领域驱动设计子实体更改跟踪

转载 作者:行者123 更新时间:2023-12-04 15:00:28 24 4
gpt4 key购买 nike

我在弄清楚聚合根将如何跟踪子实体上的更改时遇到了一些困难。

假设我有一个聚合:

  • 订单(根)
  • 订单行项目

  • Order类是聚合根。我将如何跟踪对每个 OrderLineItem 所做的更改通过 Order类(class)?

    当我创建一个存储库(实现)时,例如 OrderRepository (因为只有聚合根才能拥有存储库?),我的 OrderRepository 将如何?跟踪每个 OrderLineItem的变化?

    例子:
  • 新添加但未提交到 DB
  • 已编辑但致力于 DB
  • 已编辑但未提交给 DB

  • 大家是怎么处理这件事的?

    最佳答案

    with the Order class being the aggregate root now how will I track the changes made on each of the OrderLineItem through the Order class?



    Order 的所有更改聚合,包括 OrderLineItem , 应该通过聚合根。这样,聚合可以保持其完整性。至于跟踪更改,这取决于您的持久性实现。如果使用诸如 EF 或 NHibernate 之类的 ORM,那么 ORM 将负责跟踪更改。如果使用事件源,则更改作为事件序列显式跟踪,通常由 OOP 实现中的聚合维护。如果直接使用 SQL,您还可以避免跟踪更改并在每次提交时更新整个聚合。

    and when I make a repository(implementing) say OrderRepository because only the aggregate root can have the repository right?



    是的,每个聚合的存储库。

    关于oop - 领域驱动设计子实体更改跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657083/

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