• ABP源码分析十六:DTO的设计


    IDTO:空接口,用于标注Dto对象。

    ComboboxItemDto:用于combobox/list中Item的DTO

    NameValueDto<T>/NameValueDto:用于name value键值对的DTO, name为string类型, value为泛型或string类型。


    Entity Dto

    IEntityDto<TPrimaryKey> :基于Entity的DTO,支持泛型类型的主键。

    IEntityDto:基于Entity的DTO,只支持int类型的主键。

    EntityDto<TPrimaryKey> : 实现IEntityDto<TPrimaryKey>接口。

    EntityDto:实现IEntityDto接口

     

    CreationAuditedEntityDto<TPrimaryKey> :封装了CreationTime和CreatorUserId的EntityDto,CreatorUserId为可空的long类型,支持泛型类型的主键。

    CreationAuditedEntityDto:封装了CreationTime和CreatorUserId的EntityDto,CreatorUserId为可空的long类型,只支持int类型的主键。

    AuditedEntityDto<TPrimaryKey> :继承了CreationAuditedEntityDto<TPrimaryKey>,同时封装了LastModificationTime和LastModifierUserId,都是可空类型。LastModifierUserId为长整型。支持泛型类型的主键。

    AuditedEntityDto :与AuditedEntityDto<TPrimaryKey>的区别仅在于其只支持int类型的主键。

    FullAuditedEntityDto<TPrimaryKey> :继承了AuditedEntityDto<TPrimaryKey>的属性,同时封装了软删除的属性:IsDeleted,以及可空类型的DeleterUserId和DeletionTime,其中DeleterUserId为长整型。

    FullAuditedEntityDto :与FullAuditedEntityDto<TPrimaryKey>的区别仅在于其只支持int类型的主键。


    InPut Dto

    IInputDto :用于输入参数的DTO,空接口起标注作用,标识该接口的对象是个DTO,并且需要被validate

    EntityRequestInput<TPrimaryKey>  : 封装了entity Id的,作为输入参数的DTO,支持泛型类型的主键Id

    EntityRequestInput : 封装了entity Id的,作为输入参数的DTO,只支持int类型的主键Id

    IDoubleWayDto : 空接口起标注作用,即可以用于输入参数,又可用于结果返回的DTO.

    IdInput<TId> :封装了泛型类型的Id的,作为输入参数的DTO

    IdInput:封装了int类型的Id的,作为输入参数的DTO

    NullableIdInput<TId> : 封装了泛型类型的Id的,作为输入参数的DTO, 同时Id可为空

    NullableIdInput : 封装了int类型的Id的,作为输入参数的DTO, 同时Id可为空


    Output Dto

    IOutputDto : 作为方法结果返回返回的DTO,空接口起标注作用

    EntityResultOutput<TPrimaryKey> :封装了entity Id的,作为结果返回的DTO,支持泛型类型的主键Id

    EntityResultOutput : 封装了entity Id的,作为方法结果返回的DTO,只支持int类型的主键Id

    ListResultOutput<T> : 以List作为方法结果返回的DTO

    PagedResultOutput<T> :  以分页的List作为方法结果返回的DTO

     

    IHasTotalCount:封装了TotalCount属性。

    IListResult<T> :封装了一个IReadOnlyList<T>集合。

    ListResultDto<T> :实现了IListResult<T>接口。

    IPagedResult<T> :继承了IHasTotalCount和IListResult<T>接口。

    PagedResultDto<T> :继承了ListResultDto<T>,同时实现了IPagedResult<T>接口

     

    ILimitedResultRequest:封装了MaxResultCount

    IPagedResultRequest:封装了SkipCount

    ISortedResultRequest:封装了Sorting属性

    举个例子:QueryableExtensions通过IPagedResultRequest接口对象获取分页的参数

     

    返回ABP源码分析系列文章目录

  • 相关阅读:
    非静态成员的sizeof
    Android中java.lang.ClassNotFoundException: ***.**** in loader dalvik.system.PathClassLoader[/data/app
    手机 SIM卡的EF
    android 获取手机ip的三种方式
    获取图片倒影效果
    python基础
    Python学习_数据处理split方法
    Python学习_从文件读取数据和保存数据
    Python学习_列表推导和Lambda表达式
    python学习_数据处理编程实例(一)
  • 原文地址:https://www.cnblogs.com/1zhk/p/5334989.html
Copyright © 2020-2023  润新知