【转】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源码分析系列文章目录
【转】ABP源码分析十六:DTO的设计相关推荐
- [Abp 源码分析]十六、后台作业与后台工作者
0. 简介 在某些时候我们可能会需要执行后台任务,或者是执行一些周期性的任务.比如说可能每隔 1 个小时要清除某个临时文件夹内的数据,可能用户会要针对某一个用户群来群发一组短信.前面这些就是典型的应用 ...
- 【转】ABP源码分析十七:DTO 自动校验的实现
对传给Application service对象中的方法的DTO参数,ABP都会在方法真正执行前自动完成validation(根据标注到DTO对象中的validate规则). ABP是如何做到的? 思 ...
- GCC源码分析(十六) — gimple转RTL(pass_expand)(下)
版权声明:本文为CSDN博主「ashimida@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/lidan1 ...
- 【转】ABP源码分析十九:Auditing
审计跟踪(也叫审计日志)是与安全相关的按照时间顺序的记录,它们提供了活动序列的文档证据,这些活动序列可以在任何时间影响一个特定的操作. AuditInfo:定义如下图中需要被Audit的信息. Aud ...
- 【转】ABP源码分析十八:UI Inputs
以下图中描述的接口和类都在Abp项目的Runtime/Validation, UI/Inputs目录下的.在当前版本的ABP(0.83)中这些接口和类并没有实际使用到.阅读代码时可以忽略,无需浪费时间 ...
- 【转】ABP源码分析十五:ABP中的实用扩展方法
类名 扩展的类型 方法名 参数 作用 XmlNodeExtensions XmlNode GetAttributeValueOrNull attributeName Gets an attribu ...
- 【转】ABP源码分析十四:Entity的设计
IEntity<TPrimaryKey>: 封装了PrimaryKey:Id,这是一个泛型类型 IEntity: 封装了PrimaryKey:Id,这是一个int类型 Entity< ...
- 【转】ABP源码分析十二:本地化
本文逐个分析ABP中涉及到localization的接口和类,以及他们之间的关系.本地化主要涉及两个方面:一个是语言(Language)的管理,这部分相对简单.另一个是语言对应得本地化资源(Local ...
- 【转】ABP源码分析十:Unit Of Work
ABP以AOP的方式实现UnitOfWork功能.通过UnitOfWorkRegistrar将UnitOfWorkInterceptor在某个类被注册到IOCContainner的时候,一并添加到该类 ...
最新文章
- ps aux与ps -ef的区别
- Docker查看远端仓库的标签工具
- 计算机答辩答不上来怎么回答,答辩答不上来怎么办
- SQL 窗口函数的优化和执行
- 大白话告诉你什么是java
- 2010年软考 考试日期安排
- PC版微信,公众号文章图片无法加载,解决方法
- JAR包中的MANIFEST.MF文件详解以及编写规范
- Python网络爬虫爬取智联招聘职位
- Java实现-跳跃游戏
- android酷狗缓存目录,酷狗缓存的歌曲在哪个文件夹_酷狗音乐缓存的歌曲在电脑哪个目录-win7之家...
- 华熙LIVE·五棵松商业北区明年国庆亮相 互动体验升级
- 四川安湖科技:抖音电商节怎么参加
- Linux下文件夹的移动与复制
- 解决笔记本光标乱移动问题
- 趣味三角——第11章——一个著名的公式
- XDOJ-一元稀疏多项式计算器
- android 心形进度条,心形进度条
- 独孤思维:赚钱目标,以始为终
- 学习 Windows10
热门文章
- 【Git、GitHub、GitLab】四 Git文件重命名的简单方法以及使用git log查看版本演变历史
- Linux用户与“最小权限”原则
- 产品专家Marty Cagan:不做仅仅会编码的人
- [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(三)
- 弹出键盘,UIView 上移
- 基于xml技术的操作
- 关于代码组织的一些看法(上)
- [Java]==和equals()的区别(按照数据类型区分)
- 贝叶斯软件genle教程_一文读懂蒙特卡罗方法和应用贝叶斯推理
- 枚举命名规范_UE4 C++基础教程 - 编码规范