- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我偶然浏览过 StackOverflow、Google 和其他网站,但无法理解如何实现它的概念。
这里我有一个非常非常简单的模型:一个Item
和一个ItemActivity
。很明显,Item
是聚合根,ItemActivity
是一个实体。
所以根据 DDD 原则,我应该只实现 ItemRepository
。 ItemRepository
除了它自己的 CRUD 操作之外,还应该管理其子实体的 ItemActivity
的 CRUD 操作。
这里有一些实现问题:
.include(..)
加载根将做工作。但是更新 ItemActivity
甚至删除 ItemActivity
?从集合中删除它们不会坚持。ItemActivity
或更糟的是不存在任何ItemActivityRepository
完全没有。最好的问候。
最佳答案
1.Should I implement child entity operations in the domain or repository.
没有。存储库仅操纵聚合。
2.Loading all child entities related to an item or navigating to them is OK with Entity Framework. Loading the root with .include(..) will do the work. But what about updading an ItemActivity or even deleting an ItemActivity? Removing them from the collection does not persist.
Item.getActivity().updateRemark("...");
ItemRepository.store(Item);
3.Assume that I have to find all activities within a time span.
如果需要按范围查询,最好将 ItemActivity 设为另一个聚合根。较小的聚合有助于这种情况。
4.Is there a sample covering this topic.
著名的Effective Aggregate Design .有一些示例代码(尤其是在第 1 部分中)与您的案例密切相关。
关于entity-framework - 臭名昭著的 Entity Framework ——聚合根问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19704318/
我是一名优秀的程序员,十分优秀!