gpt4 book ai didi

c# - 跟踪数据传输对象的变化并将它们应用到域实体 (ddd)

转载 作者:行者123 更新时间:2023-11-30 20:47:20 26 4
gpt4 key购买 nike

例如,我有这个从表示层传输数据的数据传输对象:

public class CompanyDTO
{
public int Id { get; set; }
public string Name { get; set; }
...
...
...
...
public string BlaBla { get; set; }
}

以及对应的领域实体:

public class Company
{
public int Id { get; private set; }
public string Name { get; private set; }
...
...
...
...
public string BlaBla { get; private set; }

public void ChangeName(string newName)
{
//business logic here

Name = newName;
}
}

更改 Company 类的 Name 属性时存在业务逻辑,因此我不能只将 dto 的属性映射到我的域实体而不关心发生了什么更改。

实体的其他属性也存在同样的情况(例如,包含可能发生变化的其他实体的集合等)

所以问题是,我如何跟踪 dto 中的属性已更改,以便我可以应用适当的方法来完成必须完成的工作?

有没有比遍历所有这些属性并将它们与我的域实体进行比较更好的方法?

最佳答案

您要么确保当命令来自 UI 时意图已经很明显 RenameCompanyCommand,要么您尝试通过将 DTO 与域对象的当前状态进行比较来对客户端的意图进行逆向工程。

关于c# - 跟踪数据传输对象的变化并将它们应用到域实体 (ddd),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25884428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com