【转】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>?: 實現(xiàn)IEntityDto<TPrimaryKey>接口。
EntityDto:實現(xiàn)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>的區(qū)別僅在于其只支持int類型的主鍵。
FullAuditedEntityDto<TPrimaryKey>?:繼承了AuditedEntityDto<TPrimaryKey>的屬性,同時封裝了軟刪除的屬性:IsDeleted,以及可空類型的DeleterUserId和DeletionTime,其中DeleterUserId為長整型。
FullAuditedEntityDto?:與FullAuditedEntityDto<TPrimaryKey>的區(qū)別僅在于其只支持int類型的主鍵。
InPut Dto
IInputDto?:用于輸入?yún)?shù)的DTO,空接口起標注作用,標識該接口的對象是個DTO,并且需要被validate
EntityRequestInput<TPrimaryKey>??: 封裝了entity Id的,作為輸入?yún)?shù)的DTO,支持泛型類型的主鍵Id
EntityRequestInput?: 封裝了entity Id的,作為輸入?yún)?shù)的DTO,只支持int類型的主鍵Id
IDoubleWayDto?: 空接口起標注作用,即可以用于輸入?yún)?shù),又可用于結(jié)果返回的DTO.
IdInput<TId>?:封裝了泛型類型的Id的,作為輸入?yún)?shù)的DTO
IdInput:封裝了int類型的Id的,作為輸入?yún)?shù)的DTO
NullableIdInput<TId>?: 封裝了泛型類型的Id的,作為輸入?yún)?shù)的DTO, 同時Id可為空
NullableIdInput?: 封裝了int類型的Id的,作為輸入?yún)?shù)的DTO, 同時Id可為空
Output Dto
IOutputDto?: 作為方法結(jié)果返回返回的DTO,空接口起標注作用
EntityResultOutput<TPrimaryKey>?:封裝了entity Id的,作為結(jié)果返回的DTO,支持泛型類型的主鍵Id
EntityResultOutput?: 封裝了entity Id的,作為方法結(jié)果返回的DTO,只支持int類型的主鍵Id
ListResultOutput<T>?: 以List作為方法結(jié)果返回的DTO
PagedResultOutput<T>?:? 以分頁的List作為方法結(jié)果返回的DTO
?
IHasTotalCount:封裝了TotalCount屬性。
IListResult<T>?:封裝了一個IReadOnlyList<T>集合。
ListResultDto<T>?:實現(xiàn)了IListResult<T>接口。
IPagedResult<T>?:繼承了IHasTotalCount和IListResult<T>接口。
PagedResultDto<T>?:繼承了ListResultDto<T>,同時實現(xiàn)了IPagedResult<T>接口
?
ILimitedResultRequest:封裝了MaxResultCount
IPagedResultRequest:封裝了SkipCount
ISortedResultRequest:封裝了Sorting屬性
舉個例子:QueryableExtensions通過IPagedResultRequest接口對象獲取分頁的參數(shù)
?
返回ABP源碼分析系列文章目錄
總結(jié)
以上是生活随笔為你收集整理的【转】ABP源码分析十六:DTO的设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浙商银行信用卡怎么用微信还款
- 下一篇: 2020年建设银行存款利息多少?大额存单