领域驱动设计,首先使用实体框架模型

本文关键字:实体 模型 框架 | 更新日期: 2023-09-27 18:24:51

关于使用EntityFramework持久化DomainModel。我想与该领域的专家一起验证以下方法:

利用OnModelCreating映射或忽略导航属性这是不需要的。不幸的是,所有这些都是针对代码优先。

将Model First POCO视为DTO&使用反腐败层

我们在使用模型设计数据库方面投入巨大为了利用DDD,我们只剩下一条路——离开POCO由设计器单独生成的类&域类是分开的。什么时候如果需要手动映射或使用AutoMapper。我说得对吗?

第二,什么地方是最好的地图,反腐败层?

编辑:我们的模式中有250多个表,先看代码我觉得失去了设计者提供的理解能力,也先建模我有一次完全的权限。SQL生成了。然而,在代码优先的情况下,我不得不受制于代码优先迁移来为我生成/更新表。

领域驱动设计,首先使用实体框架模型

我认为数据库/设计器优先的方法不适合DDD。原因是类/模型设计只是DDD设计的一部分。另一部分是这些类/模型提供的方法。AFAIK你将很难用设计师优先的方法来实现这些。

拥有一个公共默认构造函数也是人们为了能够映射他们的模型所做的一个常见的权衡。

也就是说,有一些工具可以让你基于数据库创建POCO对象。因此,即使你想改用POCO方法,你的努力也不会白费。只是未来的更新可能会在您的POCO中完成。

我认为你需要问问自己,你强加给自己的约束是否没有阻止你获得你想要的解决方案,(使用实体框架,没有公共构造函数)

如果你把你的poco和你的模型分开,那么是的,反腐败层就是他们居住的地方。在这种情况下,他们只是DTO。