Intern Day156 - ASP.NET Core WebAPI - DTO
DTO
-
DTO,英文:DataTransfer Object,中文翻译:数据传输对象。
-
本人理解是:一个DTO包含了某个东西的所有属性,相当于是一个集合,(比如People集合了人的所有属性)。每次访问一个接口的时候,都会传入对应的DTO,之后也会返回DTO数据给到用户,但是给到用户的不一定是这个DTO里面的所有属性,可能会是部分属性。
Automapper
- Automapper是一种实体转换关系的模型,AutoMapper是一个.NET的对象映射工具。主要作用是进行领域对象与模型(DTO)之间的转换、数据库查询结果映射至实体对象。
目的
- 为了对领域对象进行数据封装,实现层与层之间的数据传递。减少调用次数,尽量传递多的数据。
作用
-
主要是负责Client(WEB层)和业务层的数据传递。即描述业务接口,传输业务数据。(数据传输目标:往往是数据访问对象从而从数据库中检索数据。)
-
大白话,主要是是用来传输数据的,它跟实体的区别就在于实体本身还会包括一些自己的逻辑,例如有效数据的校验,持久化等。但DTO是不包括这些逻辑的,它只负责进行数据的传输。由于多用于分布式应用,所以一般要求DTO都是可序列化的,而实体则不一定。一般来说实体与DTO可以进行转化。
注意
- DTO中表示的字段名称和数据库中是不一样的(格式不一样)
参考
- https://blog.csdn.net/ChaITSimpleLove/article/details/108019513?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-1.readhide&spm=1001.2101.3001.4242
- https://blog.csdn.net/cxu0262/article/details/107260319?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162694457816780262525605%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162694457816780262525605&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-3-107260319.pc_search_result_control_group&utm_term=ASP.NET+Core中DTO的作用是什么&spm=1018.2226.3001.4187