Dto用来定义接口的输入输出数据结构,当与数据库进行交互时,需要进行类型的转换。
我们使用Mapper
来进行实体类与DTO之间的转换。Dto的内容是根据实体类生成的,这是前置的条件。
本篇文档内容会介绍如何生成DTO类以及DTO的生成规则。
根据实体类生成DTO类,包括:
Dto | 作用 |
---|---|
ItemDto | 列表元素 |
DetailDto | 某实体的详情 |
FilterDto | 请求筛选条件模型 |
AddDto | 添加时的模型 |
UpdateDto | 更新时的模型 |
在生成Dto时,会将Dto信息存储到缓存,当生成任务结束后,会清理缓存。
DTO全局忽略以下属性(暂不支持处理):
JsonDocument
或byte[]
时后续我们会针对这些属性进行处理。
Tip
由于我们使用EntityFrameworkCore.Design
来获取实体信息,那些不被认为是数据库映射的属性,在生成添加/修改Dto时,不会包含这些属性。
对于每种DTO,会根据具体的使用场景进行属性的筛选和处理。
添加模型生成内容如下:
set
方法。required
关键词限制,以便更好的创建实例。列表元素不会包括以下属性:
详情Dto不包含以下属性:
JsonDocument
与byte[]
类型的属性FilterDto生成内容如下:
更新模型生成内容同添加模型,但是更新模型所有属性默认都为可空属性。
可空属性,意味着,如果该字段为空,更新时,会忽略该字段,以此来实现部分更新。