DDD中Repository Update 方法对聚合整体更新的疑问
我有一个疑问是关于DDD Repository设计的
我的设计是基于一个DDD Repository概念,既 Repository是属于AggregateRoot,仅能以AggregateRoot为参数的。
Repository的Delete和Update方法是比较容易的实现的,既整体添加Aggregate 包括 Aggregate内的Entity,删除也是类似,对整个Aggregate操作。
但是Update方法比较复杂了。因为我的DB用的是Sql Server或者MySql并不是纯粹的Key-Value方式存储Aggregate。
我还是举订单的例子吧。
我们在Update OrderLine Aggregate 可能包括
修改OrderLine属性,或者删除OrderLine内的OrderItem集合的一个项,或者增加OrderItem集合中的一个项,或者修改OrderItem的属性。
这些操作在执行Repository Update方法的时候需要整体保存到关系型数据库中。
所以这个感觉这个Update的问题很难处理。
我们总不能让Entity也支持Repository。这样破坏了Repository对聚合Store的整体操作的概念。
So 请指教,谢谢。