我正在使用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是由Create操作ifself创建的,因此在DTO中具有Id并不符合语义。
我应该创建2个不同的DTO,一个是Id而另一个没有Id?
什么是最好的选择?您是否有创建和更新的不同DTO?
答案 0 :(得分:1)
您可以使用任何一种方式。如果您在每次操作中使用单独的DTO - 它会编写大量代码(和时间花费)。我更喜欢将一个DTO用于所有操作,并在需要时创建其他操作。
答案 1 :(得分:1)
您不需要其他DTO进行创建操作。您只需设置用于创建新对象的默认值(id = 0)。这将帮助您确定是否尚未在数据库中创建对象,以备不时之需。但是,如果您将ID为零的DTO传递给创建操作的方法,那么您将永远不会遇到任何问题。