我正在尝试学习DDD的概念。我已经做了一个项目,我使用数据库优先的方法。在基础架构中,我添加了一个edmx文件,我选择该文件来自动生成实体。现在,在“域”中,我正在尝试创建聚合。
但在这里我遇到了一些问题。我正在尝试创建一个名为" User“的聚合,但是User已经存在于ef自动生成的实体中。我是否应该将聚合"User“重命名为其他名称,并在从db获取数据时将其从db实体映射到聚合。
我做错了吗?或者我不应该自动生成实体,或者enties是聚合的吗?
请多多指教和帮助。

发布于 2012-08-31 14:13:15
如果你想忠实于DDD,你应该将你的域对象建模为独立于你的持久化解决方案。DDD通过存储库处理持久性。不要使用EF生成的“实体”作为您的域模型;相反,设计您自己的模型,并实现一个使用EF进行持久性的存储库。
发布于 2012-10-29 21:59:15
在我看来,领域驱动设计和“数据库优先”是对立的。域驱动的设计关注复杂的行为,而数据模型关注数据的静态结构。
如果我有从一个干净的环境开始的特权,我不会通过首先创建一个遗留数据库来使它变得更加复杂。考虑DDD是面向复杂领域的,其中发现和学习是过程的一部分。
为了支持持续的学习过程,最好依靠更专门为进化而设计的软件组件(比如面向对象的领域模型,它可以在廉价的单元测试下),而不是依赖于进化成本肯定更高的数据库设计。
没有人能在一开始就把每件事都做好。因此,我最好从一次性成本很小的东西开始。
https://stackoverflow.com/questions/12177875
复制相似问题