您的位置:首页 > 其它

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

2016-03-29 22:05 218 查看
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源码分析系列文章目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: