具有多个有界上下文的DDD实体框架集成问题

时间:2017-04-06 11:47:21

标签: entity-framework domain-driven-design bounded-contexts

我们在当前项目中使用DDD实践。我们的问题是我们有很多有界的上下文,每个上下文都是一个包含持久层的分层架构。问题是,例如在有界上下文中,我们需要引用来自其他有界上下文的数据,例如 IdentityAccess 上下文是负责管理用户的上下文,因此它包含 UserModel < / strong>但我们需要在另一个有界上下文中引用用户,因此,我们创建一个 SubscriberUserModel ,其中包含来自该有界上下文中的用户模型的子集信息。 我们有一个迁移项目,其中包含用于管理迁移和数据库的所有有界上下文中的所有模型 但我们面临一个问题。我们不能有更多的那个实体引用同一个表 我的问题是如何以聪明的方式处理这个问题 当我们尝试生成新的迁移时,这是EF Exception

enter image description here

1 个答案:

答案 0 :(得分:4)

答案是

从DDD的角度来看,你做错了。有界上下文不应该像你的情况那样绑定关系,而是与另一个上下文中的表无关的独立表。

你应该做的是在上下文A中创建一个具有在上下文A中存在的必要属性的用户。来自上下文A的用户信息应该从上下文B,通过事件,队列,Web服务,触发器传输某种等等,但它们不应该受到关系的束缚。

这样,您可能会从上下文B中复制不必要的数据,这些数据与上下文A中的实体和业务流程无关。虽然它们的名称(用户)相同,但它们在上下文中的角色和逻辑却完全不同。别欺骗你!

有关此主题的精彩视频是Julie Lerman on Pluralsight(不是广告:))。