在一个小型 DDD 项目中,我的存储库正在返回实体数组。但是,似乎某些数据集会变得非常大,我想优化架构以限制通过存储库的内部数据映射器的对象数量。
我意识到的第一件事是我的存储库查询不必返回实体,在某些情况下,它们可以很好地返回一个更方便的 id 列表。
一种非常常见的情况是由用户输入动态过滤的表格。在每次击键时,必须重新加载列表,但是只要只显示前 10 行,每个前字符都会生成数千个查询结果。
我正在尝试学习如何处理这个问题,而无需将自己与某些具有延迟加载的特定框架结合起来。此外,我开始对表格中显示的对象排列有多少进入存储库以及有多少进入其他地方有几秒钟的想法。理想情况下,我想避免在我的存储库之外暴露查询结果限制的需要。
我应该评估哪种方法来处理大型数据集而不使用我的存储库之外的任何特定框架?
我确实有一个自定义查询类,它只包装不同数据库和框架的查询结果对象。我考虑隐藏在初始获取的限制内,并在需要更多数据时自动扩展,但是如果从外部更新结果,按部分获取可能会很痛苦。
所有这一切让我觉得我需要某种类型的智能数组和一些自定义的延迟加载。但是,我不确定在 DDD 模式中哪一个是合适的位置。