Pat*_*k87 6 oop domain-driven-design aggregateroot repository-pattern domain-model
我在确定Aggregate Root如何跟踪子实体的变化时遇到了一些困难.
假设我有一个聚合:
随着Order类是总根源.我将如何跟踪每个所做的更改OrderLineItem过Order课吗?
当我创建一个存储库(实现)例如OrderRepository(因为只有聚合根可以使存储库正确?)时,我将如何OrderRepository跟踪每个存储库的更改OrderLineItem?
例:
你们怎么处理这个?
现在,Order类是聚合根,如何通过Order类跟踪每个OrderLineItem所做的更改?
对Order聚合的所有更改(包括OrderLineItem)都应通过聚合根.这样,聚合可以保持其完整性.跟踪更改,这取决于您的持久性实现.如果使用诸如EF或NHibernate之类的ORM,则ORM将负责跟踪更改.如果使用事件源,则会将更改显式跟踪为一系列事件,通常由OOP实现中的聚合维护.如果直接使用SQL,您还可以避免跟踪更改并在每次提交时更新整个聚合.
当我创建一个存储库(实现)时说OrderRepository,因为只有聚合根才能拥有存储库权限?
是的,每个聚合的存储库.
| 归档时间: |
|
| 查看次数: |
1389 次 |
| 最近记录: |