首页 > 解决方案 > 如何轻松地将域对象与相关实体进行比较,以便使用 EF Core 更新数据库?

问题描述

对于我的 ASP.NET Core API 项目,我正在顺利地从标准存储库模式方法(在 repo 层中具有大部分业务逻辑)转移到非常诱人的 DDD 方法。我的域对象和我的实体总是不同的,因为我正在维护一个现有的应用程序,其中有一个数据库。

所以这个过程将是(如果我弄错了,请纠正我):

  1. 从数据库加载聚合
  2. 在应用层做工作(当然依赖于领域模型/内部逻辑)和
  3. 用结果更新数据库

借助自动映射器,步骤(1)没问题。

步骤(2)很棒,(OO编程,终于!)

步骤 (3) 是我的问题:我仍然持有步骤 (1) 中的初始实体模型,并且我有步骤 (2) 中的域模型,再次感谢 Automapper,我可以恢复为实体。

问题:是否有一种方法可以比较实体 (1) 和 (2) 并要求 EF Core 2.1 进行更新(可能使用状态)?

我已经在使用AddOrUpdate()which 确实适用于添加或更新,但不适用于删除值对象。

标签: c#entity-framework-coredomain-driven-design

解决方案


推荐阅读