代码生成

代码生成是本工具提供的核心功能之一,它能够帮助开发者快速生成高效简洁的模板化的代码,减少重复劳动,提高开发效率。

对于最常见的对某个实体进行数据操作的场景,代码生成器可以自动生成对应的增、删、改、查相关的模板代码,以下将具体介绍生成的内容和规则。

DTO生成

根据实体类生成DTO类,通常包括:

Dto 作用
ItemDto 列表元素
DetailDto 某实体的详情
FilterDto 请求筛选条件模型
AddDto 添加时的模型
UpdateDto 更新时的模型

DTO将生成在对应模块的

DTO生成规则

DTO全局忽略以下属性:

  • 属性含有[JsonIgnore]特性时
  • 属性类型为JsonDocumentbyte[]

对于每种DTO,会根据具体的使用场景进行属性的筛选和处理,具体规则如下:

ItemDto

列表元素不会包括以下属性:

  • IsDeleted与UpdatedTime字段,但会包含CreatedTime
  • 数组或列表
  • 长度大于200的字符串
  • 导航属性及对应Id

DetailDto

详情Dto不包含以下属性:

  • IsDeleted
  • 列表和导航属性
  • JsonDocumentbyte[]类型的属性

FilterDto

FilterDto生成内容如下:

  • 忽略 "Id", "CreatedTime", "UpdatedTime", "IsDeleted"等基础属性
  • 忽略列表及导航属性
  • 忽略最大长度在于1000的字符串属性
  • 保留必需属性(但不为导航属性)
  • 包括枚举属性

AddDto

添加模型生成内容如下:

  • 忽略 "Id", "CreatedTime", "UpdatedTime", "IsDeleted"等基础属性
  • 必须是可赋值的属性,即有set方法。
  • 对于导航属性,会进行以下处理:
    • 忽略非必需的导航属性
    • 忽略列表导航属性
    • 对于必需的导航属性,会生成属性名+Id的形式来表示

UpdateDto

更新模型生成内容同添加模型,但是更新模型所有属性默认都为可空属性。

可空属性,意味着,如果该字段为空,更新时,会忽略该字段,以此来实现部分更新。