ASP.NET Core DDD 使用请求 ViewModel 更新域模型
ASP.NET Core DDD Update domain model using the request ViewModel
我正在学习 DDD 模式,我有以下问题。
在我的 [HttpPut]
API 端点上,我有一个请求命令模型,其中包含一些用于更新域模型聚合根的属性。
现在使用 DDD 更新我的域模型的正确方法是什么。
创建映射所有请求命令属性的域模型的新对象,并在更新方法中使用该对象Update(Model model)
。然后只更新为更新填写的属性。
只需要在update方法中将所有属性一一传递即可Update(string prop1, string prop2, bool prop3)
.
创建一个表示所有属性的新域模型以进行更新 Update(UpdateModel model)
。
我认为你有点忽略了这里的重点。 DDD 战术模式与 CRUD 互斥。如果您的系统中仅有的命令是创建、更新和删除,那么您将无法从聚合和丰富模型等 DDD 战术模式中受益。
首先要做的是问问自己,您是否没有错误地在本质上不是 CRUD 的域中强制使用 CRUD 模型。如果您正在考虑重构 task-based UI & avoid an anemic domain model.
如果 CRUD 自然适合您的域(或子域),那么您可能会选择不太严格的架构。例如,您可以使用自动映射(或显式映射器)将命令数据映射到服务中的实体(吸气剂和 setter 包)。
您还可以将命令直接传递给实体并让它映射值,例如 entity.update(command)
。我是 ,但就像我对 CRUD 所说的那样,这是您可以做出的纯粹让步以保持务实,因为您主要是在设计一个美化的数据库编辑器。
我正在学习 DDD 模式,我有以下问题。
在我的 [HttpPut]
API 端点上,我有一个请求命令模型,其中包含一些用于更新域模型聚合根的属性。
现在使用 DDD 更新我的域模型的正确方法是什么。
创建映射所有请求命令属性的域模型的新对象,并在更新方法中使用该对象
Update(Model model)
。然后只更新为更新填写的属性。只需要在update方法中将所有属性一一传递即可
Update(string prop1, string prop2, bool prop3)
.创建一个表示所有属性的新域模型以进行更新
Update(UpdateModel model)
。
我认为你有点忽略了这里的重点。 DDD 战术模式与 CRUD 互斥。如果您的系统中仅有的命令是创建、更新和删除,那么您将无法从聚合和丰富模型等 DDD 战术模式中受益。
首先要做的是问问自己,您是否没有错误地在本质上不是 CRUD 的域中强制使用 CRUD 模型。如果您正在考虑重构 task-based UI & avoid an anemic domain model.
如果 CRUD 自然适合您的域(或子域),那么您可能会选择不太严格的架构。例如,您可以使用自动映射(或显式映射器)将命令数据映射到服务中的实体(吸气剂和 setter 包)。
您还可以将命令直接传递给实体并让它映射值,例如 entity.update(command)
。我是