gpt4 book ai didi

c# - 如何解决与实体依赖 DDD 中的其他实体相关的性能/内存问题?

转载 作者:行者123 更新时间:2023-11-30 20:06:39 25 4
gpt4 key购买 nike

假设我没有使用 ORM,并且遵循 DDD,请考虑以下情况:

一个 Project 有一组 File

我已经创建了一个 Project 和一个 ProjectRepository 以及一个 File 和一个 FileRepository 类。

我最初的想法是让给定 Project 的所有 File 实体在其构造函数中传递给它。当然,这个 Project 实例将通过 ProjectRepository 创建。

问题是,如果我有一百万个文件(虽然我不会有一百万个文件,但我会有足够的文件让这需要一段时间),我将不得不加载它们,即使当我真的不需要它们。

对此的标准方法是什么?我想不出比将 FileRepository 传递给每个 Project 实例更好的方法了。

最佳答案

由于您提到 DDD:如果有两个存储库,则表明有两个聚合根。聚合根概念的重点是每个根负责其整个对象图

如果您尝试将文件混合到项目对象图中,那么文件的所有权是不明确的。换句话说,不要这样做:

project
- file
- file
- file

要么将它们视为两个(关联的)对象图,要么重构 API,以便只有一个聚合根(存储库)。

关于c# - 如何解决与实体依赖 DDD 中的其他实体相关的性能/内存问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564721/

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