0

我有一个实体 A,它与实体 B 和 C 有关系。

实体 B 和 C 只能在我在事务中创建实体 A 时创建。

因此我只有一个 A-Repository.cs

当我在 A 的上下文中或在 A 的上下文之外对实体 B 执行读取/获取操作时。

我在哪里放置这些获取操作?

4

3 回答 3

2

在 A 上,假设 A 是聚合的根实体,假设您正在应用战术模式。

于 2013-09-24T11:26:37.807 回答
0

您对 B 和 C 的 get 操作属于 A。因此,在 A 中,您正在查看类似public B b{get;}and的代码public C c{get;}

于 2013-09-24T22:48:10.080 回答
0

根据聚合的定义,您需要从存储库(在您的情况下为 A)检索聚合,然后遍历对象图以获取本地实体(在您的情况下为 B 和 C)。

A a = aRepository.findBy(id);
B b = a.getB();
C c = a.getC();

必须解决一些基础设施问题。如果您的域模型也是您的持久模型并且您将 B 和 C 存储在与 A 不同的表中,则您可能需要一个支持延迟加载的 orm 框架。

于 2013-09-25T01:12:08.900 回答