ABP框架学习记录(13)- Entity解析
ABP框架学习记录(13)- Entity解析
Entity 在ABP项目中的目录位置:

Entity
IEntity<TPrimaryKey>:封装了PrimaryKey:Id,这是一个泛型类型,所有的实体都必须实现此接口;
IEntity: 继承 IEntity<int> 泛型接口;
Entity<TPrimaryKey>:继承 IEntity<TPrimaryKey> 接口的基础实现,支持主键是泛型的实体,该类重写了Equals,GetHashCode,ToString 方法和==,!= 运算符。
Entity:主键是int类型的Entity;
IEntityTranslation:实体语言转化;
IEntityTranslation<TEntity, TPrimaryKeyOfMultiLingualEntity>: 实体语言转换泛型类,TPrimaryKeyOfMultiLingualEntity 为主键类型;
IEntityTranslation<TEntity>:实体语言转换泛型类,继承 IEntityTranslation<TEntity, int> 接口;
IMultiLingualEntity<TTranslation> :多语言实体,其中 TTranslation 类型约束为 IEntityTranslation;
IEntityTranslation<> 接口的实现,表明当前实体可以被翻译:

IMultiLingualEntity<> 接口的实现,表示有多语言的实现:

使用:


IExtendableObject:使用 Json 格式的字符串属性,以扩展对象/实体。
ExtendableObjectExtensions:针对扩展字段属性的扩展类;
IAggregateRoot:聚合根接口
AggregateRoot:聚合根实现


IMayHaveTenant:为可能选择具有TenantId的实体实现此接口。
IMustHaveTenant:为必须具有TenantId的实体实现此接口。
IPassivable:此接口用于使实体主动/被动。
ISoftDelete:用于标准化软删除实体。
EntityCache
IEntityCache<TCacheItem, TPrimaryKey>:定义实体缓存接口,此接口为泛型类型;
IEntityCache<TCacheItem>:继承 IEntityCache<TCacheItem, int> 接口;
EntityCache<TEntity, TCacheItem, TPrimaryKey>:实体缓存类;

Auditing
IAudited:定义实体的审计接口,保存/更新时自动设置相关属性
IAudited<TUser>:审计接口。
ICreationAudited: 审计创建者接口,保存到数据库时,会自动设置创建时间和创建者用户。
IDeletionAudited: 删除时审计信息
IFullAudited:完全审核信息。
IHasCreationTime:如果必须存储实体,则可以实现此接口,自动设置;
IHasDeletionTime:如果必须删除实体,则可以实现此接口,自动设置;
IHasModificationTime:更新实体时间;
IModificationAudited:实体更新人信息;
AuditedEntity:审计实体;
CreationAuditedEntity:创建者审计实体;
FullAuditedEntity:全部审计信息实体;
AuditedAggregateRoot:审计聚合根
CreationAuditedAggregateRoot:创建者审计 聚合根;
FullAuditedAggregateRoot:全部审计信息 聚合根;
EntityAuditingHelper:实体审计帮助类;

参考: