【发布时间】:2014-11-11 03:03:11
【问题描述】:
例如,我有这个数据传输对象,它携带来自表示层的数据:
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,您可能不会遇到这个问题。
-
数据不一定来自ui。它可以是一项服务或任何可以为我服务的 dto。
标签: c# domain-driven-design data-transfer-objects