我们试图找出一个场景的分离的有界上下文集成。
假设一个上下文是Document Core Bounded Context (BC),它有一个Document Entity 和Author。在实现 DDD 书中使用IdentityAccessContext BC将用户、组和角色分隔到他们自己的上下文中是有意义的。
正在发生的问题是在考虑获取 100 多个文档的列表时。
假设 Document Core BC有自己的实体来标记文档的作者。
public class Author
{
long Id; // Same as UserId
long Document;
}
然后身份BC有一个具有相关信息的用户。
public class User
{
long Id;
string FullName;
}
获取文档列表时,应该如何将来自IdentityAccess BC的信息检索到文档作者/与文档作者一起进行显示(例如全名)?
似乎有几个选择:
- 也许是一个从两个表中获取数据的反腐败层?
- 在两个BC中重复用户的全名?
两者都感觉不太对,因为 #1 需要加入来自 2 个 BC 的数据(在某种程度上),而 #2 需要在更改用户名时可能更新几个 BC。
关于这个还能做什么?(如果重要,使用 C#、MVC、NHibernate)清楚地获取对象列表并稍后获取例如作者的姓名和其他数据是不现实的。
然而,在查看BC集成时,鉴于 RPC、域事件和 RESTful 服务集成一书中提到的 3 个选项,至少后 2 个在应用程序是 MVC 的情况下没有意义,它直接使用2 BC 作为类库,它们都使用相同的数据库。可以通过 Identity BC 的应用程序服务直接从 MVC 更新用户信息。可以根据需要更改数据库和 BC。