【转】ABP源码分析十四:Entity的设计

IEntity<TPrimaryKey>: 封装了PrimaryKey:Id,这是一个泛型类型

IEntity: 封装了PrimaryKey:Id,这是一个int类型

Entity<TPrimaryKey> :支持主键是泛型类型的Entity

Entity:支持主键是int类型的Entity

 

IHasCreationTime: 封装了CreationTime

ICreationAudited: 封装了CreatorUserId,这个是long类型

CreationAuditedEntity<TPrimaryKey> : 支持主键是泛型类型的Entity,并且封装了CreationTime 和 CreatorUserId

CreationAuditedEntity: 只支持主键是int类型的Entity,并且封装了CreationTime 和 CreatorUserId

ICreationAudited<TUser> :封装了泛型类型的creator

CreationAuditedEntity<TPrimaryKey, TUser> :  支持主键是泛型类型,并且封装了泛型类型的creator的Entity

 

ISoftDelete:封装了软删除的标志IsDeleted

IHasDeletionTime:封装了DeletionTime

IDeletionAudited:封装了DeleterUserId,这个是long类型

IDeletionAudited: 封装了泛型类型的DeleterUser

 

 

IHasModificationTime:封装了LastModificationTime

IModificationAudited: 封装了LastModifierUserId,这个是long类型

IModificationAudited<TUser> :  封装了泛型类型的LastModifierUser

 

 

IAudited:从其父类接口那继承了Creation 和 Modification 的时间和UserID,这个是long类型

AuditedEntity<TPrimaryKey> :支持主键是泛型类型的Entity,并且从其父类接口那继承了Creation 和 Modification 的时间和UserID,这个是long类型

AuditedEntity: 与AuditedEntity<TPrimaryKey>的区别就是其只支持主键是int类型的Entity。

 

 

AuditedEntity<TPrimaryKey, TUser> :与AuditedEntity<TPrimaryKey>的区别就是其支持泛型类型的LastModifierUser和CreatorUser。

 

 

IAudited:从其父类接口那继承了Creation,Modification和delete 的时间和UserID,这个是long类型

FullAuditedEntity<TPrimaryKey> :支持主键是泛型类型的Entity,并且从其父类接口那继承了Creation,Modification和delete 的时间和UserID,这个是long类型

FullAuditedEntity:与FullAuditedEntity<TPrimaryKey>的区别就是其只支持主键是int类型的Entity

 

 

FullAuditedEntity<TPrimaryKey, TUser> :与FullAuditedEntity<TPrimaryKey>的区别就是其支持泛型类型的LastModifierUser,CreatorUser 和 deleteuser。

 

以下是最终的类层次结构。

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

IDTO:空接口&#xff0c;用于标注Dto对象。 ComboboxItemDto&#xff1a;用于combobox/list中Item的DTO NameValueDto<T>/NameValueDto:用于name value键值对的DTO&#xff0c; name为string类型&#xff0c; value为泛型或string类型。 Entity Dto IEntityDto<TPri…

php session 机制,Cookie、Session机制详解及PHP中Session处理

会话机制Cookie/Session&#xff1a;在web应用中&#xff0c;常用的会话追踪机制是Cookie和Session。而Cookie是通过在浏览器里记录确定用户身份&#xff0c;Session在服务器端记录信息确定用户身份。Http协议&#xff1a;http协议本身是无状态的&#xff0c;也就是说我们无法通…

【转】ABP源码分析十七:DTO 自动校验的实现

对传给Application service对象中的方法的DTO参数&#xff0c;ABP都会在方法真正执行前自动完成validation&#xff08;根据标注到DTO对象中的validate规则&#xff09;。 ABP是如何做到的? 思路无外乎通过Castle的拦截器实现AOP。本文主要分析ABP是如何设计。 Ivalidate: 空…

【转】ABP源码分析十八:UI Inputs

以下图中描述的接口和类都在Abp项目的Runtime/Validation, UI/Inputs目录下的。在当前版本的ABP&#xff08;0.83&#xff09;中这些接口和类并没有实际使用到。阅读代码时可以忽略&#xff0c;无需浪费时间去寻找其是如何被ABP使用的(本文的目的)。 这些接口和类最终都是通过…

【转】ABP源码分析十九:Auditing

审计跟踪&#xff08;也叫审计日志&#xff09;是与安全相关的按照时间顺序的记录&#xff0c;它们提供了活动序列的文档证据&#xff0c;这些活动序列可以在任何时间影响一个特定的操作。 AuditInfo&#xff1a;定义如下图中需要被Audit的信息。 AuditedAttribute&#xff1a;…

【转】WebServices:WSDL的结构分析

WSDL&#xff08;Web Services Description Language&#xff0c;Web服务描述语言&#xff09;是为描述Web Services发布的XML格式。W3C组织没有批准1.1版的WSDL&#xff0c;但是2.0版本已经在製訂中&#xff0c;2.0版将被作为推荐标准&#xff08;recommendation&#xff09;&…

【转】WebService WSDL结构分析

转载自&#xff1a;http://kalogen.javaeye.com/blog/418958 WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application&#xff0c;他将Web服务描述定义为一组服务访问点&#xff0c;客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服…

【转】WebService 之 WSDL文件 讲解

恩&#xff0c;我想说的是&#xff0c;是不是经常有人在开发的时候&#xff0c;特别是和第三方有接口的时候&#xff0c;走的是SOAP协议&#xff0c;然后用户给你一个WSDL文件&#xff0c;说按照上面的进行适配&#xff0c;嘿嘿&#xff0c;这个时候&#xff0c;要是你以前没有…

集卡php源码,独角数卡自动发卡网PHP源码+教程:虚拟产品自助售卖

这款独角数卡自动发卡源码比大大目前在用的源码还要强大&#xff0c;测试了一下&#xff0c;不光可以零售还能批发&#xff0c;相当给力&#xff01;支付接口也是集成了很多&#xff0c;不仅支持支付宝当面付&#xff0c;还支持第三方的支付&#xff01;支付接口如下&#xff1…

思想已经高过行动好多了

好几天过去了&#xff0c;依然没什么起色&#xff0c;今天搜索一下论坛上自己的老帖&#xff0c;整理出来做个见证&#xff0c;看着自己才开始ASP的时候问的问题&#xff0c;不知所云。现在就不一样了&#xff0c;哈哈……在听了些微软的讲座之后&#xff0c;对设计模式很感兴趣…

【转】自旋锁-SpinLock(.NET 4.0+)

短时间锁定的情况下&#xff0c;自旋锁&#xff08;spinlock&#xff09;更快。&#xff08;因为自旋锁本质上不会让线程休眠&#xff0c;而是一直循环尝试对资源访问&#xff0c;直到可用。所以自旋锁线程被阻塞时&#xff0c;不进行线程上下文切换&#xff0c;而是空转等待。…

【转】.NET 自带的动态代理+Expression 实现AOP

下面代码&#xff08;摘抄之别处&#xff0c;原创在哪不知&#xff09;是采用TransparentProxy和RealProxy实现对象的动态代理。碍于其使用反射调用方法&#xff0c;所以就小试着将反射改成Expression以提高执行的效率。第15行就是原来代码中反射调用方法的关键代码。 1 using …

剖析Jive的缓存机制

剖析Jive的缓存机制- - 作者&#xff1a;张磊 本文选自&#xff1a;开放系统世界 2003年06月06日Jive是一个广受欢迎的开放源码的论坛项目&#xff0c;虽然推出了很多年&#xff0c;但至今很多Java程序员还对它津津乐道。从框架结构上看&#xff0c;它采用了很多设计模式&#…

主题:的中间层框架 第一节

主题:<插件式>的中间层框架 时间:2004-12-31 15:00 主讲:D10.天地弦 2004-12-31 14:56:15 /:>D10.天地弦(185511468) 开始吧&#xff0c;我们 2004-12-31 14:57:22 /:>D10.天地弦(185511468) 请大家先看图 http://www.jqk.net.cn/dkFrameworkWeb/dkFramework_fi…

qt5.11 linux oracle,Qt5.11.1 + VS2017环境搭建(Qt5.11在windows上的安装)

安装视频&#xff1a;《Qt5.11在windows‘上的编译安装》安装VisualStudio2017VS2017安装包 提取码&#xff1a;7db11&#xff0c;安装vs2017请确保勾选了“通用Windows平台开发”组件&#xff0c;否则VS2017将无法用来进行开发右侧的安装详细信息部分也尽量与上图一致。安装完…

【转】Dynamics 365中的事件框架与事件执行管道(Event execution pipeline)

本文介绍了Microsoft Dynamics 365&#xff08;以下简称D365&#xff09;中的两个概念&#xff0c;事件框架&#xff08;Event Framework&#xff09;与事件执行管道&#xff08;Event execution pipeline&#xff09;。 本文适用于&#xff1a;Applies To: Dynamics 365 (onl…

【转】ABP源码分析二十:ApplicationService

IApplicationService : 空接口&#xff0c;起标识作用。所有实现了IApplicationService 的类都会被自动注入到容器中。同时所有IApplicationService对象都会被注入一些拦截器&#xff08;例如&#xff1a;auditing, UnitOfWork等&#xff09;以实现AOP AbpServiceBase&#xf…

【转】ADFS 概念与基本开发介绍

&#xff08;如您转载本文&#xff0c;必须标明本文作者及出处。如有任何疑问请与我联系 menap7.com&#xff09; ADFS 相关开发技术的中文资料相对匮乏&#xff0c;之前在弄这个东西的时候搞的比较辛苦&#xff0c;因此总结此文档&#xff0c;以解后人之忧。 本文会首先介绍…

【转】使用FiddlerCore来测试WebAPI

大家在调试Web相关的API时&#xff0c;经常会用Fiddler来查看相关的请求&#xff0c;以及返回结果。当然你也可以尝试修改或者重复发送你的请求信息。本文主要介绍如何使用代码来实现fiddler的功能。 Fiddler Core API Fiddler Core几乎实现了你能用fiddler做的所有功能。直接…

【转】程序在内存中的分布

前些天学习到了程序在虚拟内存中分布的一些知识点&#xff0c;结合在网上查阅的一些资料&#xff0c;整理一下知识点。本博客参考博主 hackbuteer1的《程序在内存中的分布》这篇文章。 v 在现代的操作系统中&#xff0c;当我们说到内存&#xff0c;往往需要分两部分来讲&#x…