Kad*_*r.K 5 domain-driven-design entity-framework aggregateroot
我偶然发现了 StackOverflow 和 Google 以及其他网站,但无法掌握如何实现它的概念。
这里我有一个非常非常简单的模型:AnItem和 an ItemActivity。显然, 是Item聚合根, 是ItemActivity实体。
所以根据 DDD 原则我应该只实现ItemRepository. 除了它自己的 CRUD 操作之外,ItemRepository还应该管理其子实体的ItemActivityCRUD 操作。
这里出现了一些实施问题:
.include(..)即可完成工作。但是更新ItemActivity甚至删除怎么办ItemActivity?从集合中删除它们不会持续存在。ItemActivity或更糟糕的是
ItemActivityRepository根本不存在任何查询时,如何实现这样的查询。此致。
1.我应该在域还是存储库中实现子实体操作。
不,存储库仅操作聚合。
2.使用实体框架加载与某个项目相关的所有子实体或导航到它们是可以的。使用 .include(..) 加载根目录即可完成工作。但是更新 ItemActivity 甚至删除 ItemActivity 又如何呢?从集合中删除它们不会持续存在。
  Item.getActivity().updateRemark("...");
  ItemRepository.store(Item);
3.假设我必须找到一个时间范围内的所有活动。
如果需要按范围查询,最好将 ItemActivity 设为另一个聚合根。较小的聚集体有助于这种情况。
4.Is there a sample covering this topic.
著名的有效聚合设计。有一些示例代码(特别是在第 1 部分中)与您的案例密切相关。
| 归档时间: | 
 | 
| 查看次数: | 2793 次 | 
| 最近记录: |