我有一个实体 A,它与实体 B 和 C 有关系。
实体 B 和 C 只能在我在事务中创建实体 A 时创建。
因此我只有一个 A-Repository.cs
当我在 A 的上下文中或在 A 的上下文之外对实体 B 执行读取/获取操作时。
我在哪里放置这些获取操作?
我有一个实体 A,它与实体 B 和 C 有关系。
实体 B 和 C 只能在我在事务中创建实体 A 时创建。
因此我只有一个 A-Repository.cs
当我在 A 的上下文中或在 A 的上下文之外对实体 B 执行读取/获取操作时。
我在哪里放置这些获取操作?
在 A 上,假设 A 是聚合的根实体,假设您正在应用战术模式。
您对 B 和 C 的 get 操作属于 A。因此,在 A 中,您正在查看类似public B b{get;}
and的代码public C c{get;}
。
根据聚合的定义,您需要从存储库(在您的情况下为 A)检索聚合,然后遍历对象图以获取本地实体(在您的情况下为 B 和 C)。
A a = aRepository.findBy(id);
B b = a.getB();
C c = a.getC();
必须解决一些基础设施问题。如果您的域模型也是您的持久模型并且您将 B 和 C 存储在与 A 不同的表中,则您可能需要一个支持延迟加载的 orm 框架。