Sup*_*JMN 9 .net c# entity-framework dto
我正在设计一个 Web API,对 Person 实体执行通常的 CRUD 操作。
问题是我不知道如何设计 DTO。
实体如下:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经确定 DTO 应该拥有相同的成员:
public class PersonDto
{
public int Id { get; set; }
public string Name { get; set; }
public int Age{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这对于 Update 操作是有意义的,但是 Create 呢?Id 是由 Create 操作 ifself 创建的,因此在 DTO 中使用 Id 不符合语义。
我应该创建 2 个不同的 DTO,一个有 Id,另一个没有 Id?
最好的选择是什么?你有不同的 DTO 来创建和更新吗?
您不需要另一个 DTO 来进行创建操作。您只需设置默认值(id=0)即可创建新对象。这将帮助您确定该对象是否尚未在数据库中创建,以防万一。不过,如果您将 ID 为零的 DTO 传递给用于创建操作的方法,您将永远不会遇到任何问题。