ror*_*012 1 domain-driven-design entity-framework bounded-contexts
我们在当前的项目中使用 DDD 实践。我们的问题是我们有很多有界上下文,每个上下文都是一个包含其持久层的分层架构。问题是,例如在有界上下文中,我们需要引用其他有界上下文中的数据,例如IdentityAccess上下文是负责管理用户的上下文,因此它包含UserModel但我们需要在另一个有界上下文中引用用户因此,我们创建一个SubscriberUserModel,其中包含该有界上下文中用户模型的子集信息。我们有一个迁移项目,其中包含来自所有有界上下文的所有模型,用于管理迁移和数据库,但我们面临一个问题。我们不能有多个实体引用同一个表我的问题是如何以一种聪明的方式处理这个问题这是当我们尝试生成新迁移时的 EF 异常
小智 5
答案是不要!
从 DDD 的角度来看,你做错了。有界上下文不应该像您的情况那样与关系绑定,而应该与另一个上下文中的表无关的独立表绑定。
您应该做的是在上下文 A 中创建一个用户,该用户具有存在于上下文 A 中所需的属性。来自上下文 A 的用户信息应通过事件、队列、Web 服务、某种触发器从上下文 B 传输等等,但它们不应该受到关系的限制。
这样,您可能会从上下文 B 中复制与上下文 A 中的实体和业务流程无关的不必要的数据。尽管它们具有相同的名称(用户),但它们在上下文中的角色和逻辑完全不同。别让这欺骗了你!
Julie Lerman 在 Pluralsight 上发布了有关该主题的精彩视频(不是广告:))。