C# ASP.NETWebAPI:如何处理DTO和域对象之间的属性复制
假设我有一个C# ASP.NETWebAPI:如何处理DTO和域对象之间的属性复制,c#,.net,asp.net-web-api,C#,.net,Asp.net Web Api,假设我有一个ToDoItemModel概念,如下所示: public class ToDoItemModel { public int Id { get; set; } public DateTime DateAdded { get; set; } public string Title { get; set; } } 这将是我的DTO对象。我还需要能够调用ToDoItem上的一些方法,例如TransformTitle()或覆盖的ToString()属性: public cl
ToDoItemModel
概念,如下所示:
public class ToDoItemModel
{
public int Id { get; set; }
public DateTime DateAdded { get; set; }
public string Title { get; set; }
}
这将是我的DTO对象。我还需要能够调用ToDoItem
上的一些方法,例如TransformTitle()
或覆盖的ToString()
属性:
public class ToDoItem
{
public int Id { get; set; }
public DateTime DateAdded { get; set; }
public string Title { get; set; }
public void TransformTitle(){
this.Title = TranformationLogic();
}
public override string ToString()
{
return this.Title;
}
}
我计划将ToDoItemModel
用作控制器中的DTO(当从客户端发布信息时)。在保存到数据库之前,ToDoItem
将用于对数据运行一些逻辑
但是,我们在模型和域对象之间存在重复(就其公共属性而言)。这感觉不对。解决此复制的最佳方法是什么?是否应该以某种方式将模型传递到
ToDoItem
?看看您所说的属性复制到底是什么意思?您有一种典型的情况,即使用Automapper将一个对象复制到另一个对象。您可以对DTO对象执行一些转换,然后执行JUt使用Automapper将其映射到域对象。这就是Automapper的用途,用于轻松复制类似对象,甚至具有完全相同属性的对象(如本例中)。