我应该为每个域在DDD中创建一个单独的数据库吗?EF MVC codefirst

时间:2017-05-09 06:04:35

标签: c# entity-framework domain-driven-design code-first

我是DDD的新手。 我有一个有6个域名的项目。 enter image description here

在每个域中我都有我的inf和app层。我的问题是关于我的数据库。我首先使用实体​​框架代码(MVC ASP)。 我应该为每个域创建一个单独的数据库吗?

1 个答案:

答案 0 :(得分:3)

您设法将应用程序拆分为多个有界上下文(BCs),每个域(子域)一个。这是完美的情况。

在这种情况下,每个有界上下文都应该有单独的数据库(或至少是单独的表/集合)。为了将数据从一个BC共享到另一个BC,您应该使用Context mapping策略DDD模式来查看最佳技术(根据您的体系结构,您可以使用反腐败) layer用于在上游和下游BC之间共享数据。

了解BCs之间关于整合类型的更多here

PS。在Vaughn Vernon的书Domain-Driven Design Distilled中,您可以找到一些集成示例。