【发布时间】:2017-09-06 10:36:35
【问题描述】:
我正在设计一个对 Person 实体进行常规 CRUD 操作的 Web API。
问题是我不知道如何设计 DTO。
实体如下:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
我已确定 DTO 应该具有完全相同的成员:
public class PersonDto
{
public int Id { get; set; }
public string Name { get; set; }
public int Age{ get; set; }
}
这对于 Update 操作是有意义的,但是 Create 呢? Id 由 ifself 的 Create 操作创建,因此在 DTO 中有 Id 不符合语义。
我应该创建 2 个不同的 DTO,一个有 Id,另一个没有 Id?
什么是最好的选择?您是否有用于创建和更新的不同 DTO?
【问题讨论】:
-
DTO 是群体性精神病的一个例子。改用命令/响应模式,问题就消失了
-
您能否提供一些示例或链接以了解该模式?关键字太宽泛,搜索它返回了很多有点误导的结果:) 谢谢
-
Don't use DTOs problem solved. 这种重复的成本很高,因此架构需要从这种分离中获得巨大的好处才值得。我认为您的 DTO 确实没有任何好处,它与另一个对象相同,那你为什么要使用它?
-
你已经有了实体,为什么要把它复制到另一个对象上?大多数(如果不是全部)设计模式在被滥用时可能会变成反模式。 DTO 也不例外。我记得我第一次看到登录窗口的 MVVM 示例代码。我曾经在一个班级中编写的这个简单的日常示例突然变成了 5 个班级的野兽。恕我直言,编写代码时要记住的最重要的事情是 KISS。
-
直接使用你的实体....
标签: c# .net entity-framework dto