CRUDServiceBaseTEntity, TKey, TInput, TFilter Class

CRUD 服务泛型抽象基类。

Definition

Namespace: QuickAdmin.Service.CRUD
Assembly: QuickAdmin.Net (in QuickAdmin.Net.dll) Version: 2.0.10
C#
[NotUseDI]
public abstract class CRUDServiceBase<TEntity, TKey, TInput, TFilter> : ICRUDService<TEntity, TKey, TInput, TFilter>, 
	IPagingService<TEntity, TKey, TFilter>, IOperationLogModule
where TEntity : class, object, IEntityWithIdKey<TKey>
where TInput : class
Inheritance
object    CRUDServiceBaseTEntity, TKey, TInput, TFilter
Derived
Implements
ICRUDServiceTEntity, TKey, TInput, TFilter, IOperationLogModule, IPagingServiceTEntity, TKey, TFilter

Type Parameters

TEntity
实体类型。必须是一个 IEntityWithIdKeyTKey 类型。
TKey
主键数据类型。
TInput
输入类型。
TFilter
过滤器类型。

Remarks

通用 CRUD 服务需要一个实体设计三个类型:实体类型、输入类型和过滤器类型。输入类型可以直接就用实体类型或者单独设计,视情况而定。 实体类型必须是一个 IEntityWithIdKeyTKey 类型。 TEntityTInput 若不同必须用 AutoMapper 建立可互相转换的映射关系。

派生类需要重写应用 TFilter 过滤器的方法 ApplyFilterAsync(ISelectTEntity, TFilter, CancellationToken)

本类内对增删改查操作相关方法都进行了分解,以便于在派生类中进行重写定制。

Constructors

CRUDServiceBaseTEntity, TKey, TInput, TFilterInitializes a new instance of the CRUDServiceBaseTEntity, TKey, TInput, TFilter class

Properties

Public Properties

OPModule 获取本服务对应操作模块的名称。
OPObject 获取本服务操作的对象的名称,即 TEntity 的显示名称。

Protected Properties

DefaultOrderBys 获取默认排序字段。
DefaultSortListDescending 指示是否默认为降序排序。
deptService 部门服务。
EnableChangeLogging 指示在更新实体时,是否比对更改前后的记录并将有变更的字段值记入操作日志。
fsql 获取本服务要操作的数据所用的 IFreeSql 实例。
IDeleteObj 获取 IDelete 对象。
IncludePropertyNamesForISelect 获取一个字符串数组,指示在查询时要贪婪加载的属性。
ISelectObj 获取 ISelect 对象。
IUpdateObj 获取 IUpdate 对象。
logger 系统日志。
mapper IMapper 对象。
opLogService 操作日志服务。
PopulateAuditorNamesInList 指示在查询实体列表时是否自动填充审计类实体中的操作用户姓名相关属性,如 CreatorNameUpdaterName 等。
userService 用户服务。

Methods

Public Methods

Add 添加实体。
AddAsync 添加实体。
BulkAdd 批量添加实体。
BulkAddAsync 批量添加实体。
BulkDelete 批量删除实体。
BulkDeleteAsync 批量删除实体。
BulkUpdate 批量更新实体。
BulkUpdateAsync 批量更新实体。
Delete(TKey) 删除指定实体。
Delete(TKey) 删除实体。
DeleteAsync(TKey, CancellationToken) 删除指定实体。
DeleteAsync(TKey, CancellationToken) 删除实体。
DeleteByFilter 删除指定过滤器代表的实体。
DeleteByFilterAsync 删除指定过滤器代表的实体。
Exists 检测指定实体是否存在。
ExistsAsync 检测指定实体是否存在。
Get 获取指定实体。
GetAsync 获取指定实体。
GetDtoPagingOutputTDto 执行查询,并返回指定页码的,把 TEntity 映射为 TDto 后的数据。
GetDtoPagingOutputAsyncTDto 执行查询,并返回指定页码的,把 TEntity 映射为 TDto 后的数据。
GetPagingOutput 执行查询,并返回指定页码的数据。
GetPagingOutputAsync 执行查询,并返回指定页码的数据。
MapFromInput 由实体输入构造实体对象。
MapToInput 由实体对象构造实体输入。
RawCount 按指定过滤条件查询记录数。
RawCountAsync 按指定过滤条件查询记录数。
RawExists 直接检测指定实体是否存在。
RawExistsAsync 直接检测指定实体是否存在。
RawGet 直接获取指定实体。
RawGetAsync 直接获取指定实体。
RawGetSpecificDataTReturn 查找指定实体,并返回指定类型的数据。
RawGetSpecificDataAsyncTReturn 查找指定实体,并返回指定类型的数据。
RawQuery 直接按指定过滤器查询实体列表。
RawQueryAsync(TFilter, CancellationToken) 直接按指定过滤器查询实体列表。
RawQueryAsync(TFilter, string, string, CancellationToken) 直接按指定过滤器查询实体列表。可指定排序。
RawQueryDtoTDto 查询并返回将 TEntity 映射为 TDto 后的数据列表。
RawQueryDtoAsyncTDto(ExpressionFuncTEntity, TDto, TFilter, FuncISelectTEntity, ISelectTEntity, CancellationToken) 查询并返回将 TEntity 映射为 TDto 后的数据列表。
RawQueryDtoAsyncTDto(ExpressionFuncTEntity, TDto, TFilter, string, string, FuncISelectTEntity, ISelectTEntity, CancellationToken) 查询并返回将 TEntity 映射为 TDto 后的数据列表。可指定排序。
Update 更新实体。
UpdateAsync 更新实体。

Protected Methods

AddOperationLog 记录操作日志。
AddOperationLogAsync 记录操作日志。
AfterAdd 添加实体后要进行的操作。
AfterAddAsync 添加实体后要进行的操作。
AfterBulkAdd 批量添加实体后要进行的操作。
AfterBulkAddAsync 批量添加实体后要进行的操作。
AfterBulkDelete 批量删除实体后要进行的操作。
AfterBulkDeleteAsync 批量删除实体后要进行的操作。
AfterDelete 删除实体后要进行的操作。
AfterDeleteAsync 删除实体后要进行的操作。
ApplyFilter 应用指定过滤器。
ApplyFilterAsync 应用指定过滤器。
CanDelete 用于在删除实体前检查该实体当前是否允许删除。
CanDeleteAsync 用于在删除实体前检查该实体当前是否允许删除。
CompareChanges 比对实体更新前后的变更,并返回变更描述。
FetchList 由分页设置后的 ISelect 执行查询并获取实体列表。
FetchListAsync 由分页设置后的 ISelect 执行查询并获取实体列表。
GetFilteredIDelete 获取应用了指定过滤器的 IDelete 对象。
GetFilteredIDeleteAsync 获取应用了指定过滤器的 IDelete 对象。
GetFilteredIUpdate 获取应用了指定过滤器的 IUpdate 对象。
GetFilteredIUpdateAsync 获取应用了指定过滤器的 IUpdate 对象。
GetISelect(TKey) 获取选取了指定记录的 ISelect 对象。
GetISelect(PagingInputTFilter) 获取应用了分页输入参数内的过滤器、排序等等以及其它选项的 ISelect 对象。
GetISelectAsync 获取应用了分页输入参数内的过滤器、排序等等以及其它选项的 ISelect 对象。
GetIUpdate 获取用来更新指定实体的 IUpdate 对象。
GetIUpdateAsync 获取用来更新指定实体的 IUpdate 对象。
OnBulkDelete 执行 SQL 语句,批量删除指定实体。
OnBulkDeleteAsync 执行 SQL 语句,批量删除指定实体。
OnDelete 执行 SQL 语句,删除指定实体。
OnDeleteAsync 执行 SQL 语句,删除指定实体。
PrepareNewEntity 预处理新实体。用于在添加实体时,按需对其进行一些额外的加工。
PrepareNewEntityAsync 预处理新实体。用于在添加实体时,按需对其进行一些额外的加工。
RawExecuteInsert 执行插入实体 Insert 语句的方法。
RawExecuteInsertAsync 执行插入实体 Insert 语句的方法。
RawExecuteUpdate 执行更新实体 Update 语句的方法。
RawExecuteUpdateAsync 执行更新实体 Update 语句的方法。
SetOrderBy 设置排序。
ValidateInput 用于在添加或更新实体时,校验输入是否有效。
ValidateInputAsync 用于在添加或更新实体时,校验输入是否有效。

See Also