1

好的,所以我定义了我的根源。根内的实体可以引用同一根内的其他实体,但不能引用根外的其他实体。在那里,他们只能拥有身份或相关实体。这一切都很棒。

但是,我正在使用 EF5 并且导航属性正在阻碍。我真的只想定义实体位于聚合内的导航属性。但是如何在相关实体位于不同聚合中的情况下应用一些参照完整性?是使用迁移手动添加 FK 的唯一选择吗?

再一次,但是......这会引起一些问题,因为我希望能够拥有 ReadOnlyRepositories 来从各地获取聚合数据。我不想进入 CQRS,因为我觉得那里有太多的飞跃。我是否需要第二个有界上下文,其中包含定义了额外导航属性的新实体集(或者可能是派生集)?这样我就可以编写从多个根中提取数据的查询?

4

1 回答 1

1

需要参照完整性通常表明存在更深层次的问题。为什么需要实体标识符同时存在于两个表中?以这种方式保持一致的是什么?为什么没有明确建模?这些问题不如答案重要。还要意识到,通过在相同的数据库架构(和适当的索引)上使用其他技术,您的许多问题都可能消失。谁知道呢,你可能只是在那个时间点做 CQRS。

于 2013-05-03T21:49:22.530 回答