DDD的技术落地 — 千万不要面向数据库建模

我们在进行程序开发的时候,容易走入的误区是”面向数据库建模”,也就是在设计实体类的时候,总是先考虑实体类在数据库中如何保存。

这样设计出的实体类和数据库表具有直接的对应关系,实体类中属性的个数与类型和数据库表中的列几乎完全一致

这样设计出的类称不上”实体类”,只能被称为数据对象(data object)。

这样的数据对象反映的是数据库的细节,数据库表和真正的领域模型存在差异,当开发人员使用这样的”伪实体类”进行开发的时候,无法真正地实现面向领域模型的开发。

因此,本书的作者不推荐开发人员采用EF Core的”反向工程”来根据已有的数据库表生成所谓”实体类”的方式进行开发。

采用反向工程生成的实体类进行开发是”面向数据库开发”,而不是”模型驱动开发”。

数据库只是我们用来保存领域对象的一个介质而已。

我们在进行开发的时候,应该在不考虑数据库实现的情况下进行领域模型建模,然后使用Fluent API等对实体类和数据库做配置。

通俗来讲就是,在进行领域模型建模的时候,不考虑数据库,而是最后使用Fluent API来处理数据库实现的细节。

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部