doc:添加cicd文档模块

This commit is contained in:
橙子
2023-12-23 21:14:56 +08:00
parent 04fb38757c
commit 74cebb37a8
20 changed files with 430 additions and 2 deletions

View File

@@ -0,0 +1,56 @@
## 简介
> 想做一个快乐的Crud boy满足你
可能绝大部分简单的业务真的只是不用类型的Crud大量的重复代码使用cv方式不够优雅
框架内部内部封装各种场景下的crud
## 使用
在应用层继承`YiCrudAppService`crud服务即可
在这之前你应该先了解各个dto的作用
> 注意我们当然可以直接使用Abp中的`CrudAppService`但由于Abp内置的Crud还缺少一些常用的接口比如批量删除等方式所以推荐使用`YiCrudAppService`,使用上完全没有区别
``` cs
- TGetOutputDto (单查返回的dto)
- TGetListOutputDto (多查返回的dto)
- TGetListInput (多查的条件)
- TCreateInput (创建的dto)
- TUpdateInput 更新的dto
```
根据Dto业务场景它有很多种选项依次为
``` cs
- YiCrudAppService<TEntity, TEntityDto, TKey>
- YiCrudAppService<TEntity, TEntityDto, TKey, TGetListInput>
- YiCrudAppService<TEntity, TEntityDto, TKey, TGetListInput, TCreateInput>
- YiCrudAppService<TEntity, TEntityDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
- YiCrudAppService<TEntity, TGetOutputDto, TGetListOutputDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
```
dto可以放到`Application.Contracts`层,同理接口继承`IYiCrudAppService`即可
```cs
- YiCrudAppService<TEntityDto, TKey>
- YiCrudAppService<TEntityDto, TKey, TGetListInput>
- YiCrudAppService<TEntityDto, TKey, TGetListInput, TCreateInput>
- YiCrudAppService<TEntityDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
- YiCrudAppService<TGetOutputDto, TGetListOutputDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
```
> 可以发现,接口,不应该与实体有直接关系
其中在YiCrudAppService中我们提供了一些内置的方法
```cs
public virtual async Task<TGetOutputDto> CreateAsync(TCreateInput input)
public virtual async Task<bool> DeleteAsync(string id)
public virtual async Task<TGetOutputDto> UpdateAsync(TKey id, TUpdateInput input)
public virtual async Task<TGetOutputDto> GetAsync(TKey id)
public virtual async Task<PagedResultDto<TGetListOutputDto>> GetListAsync(TGetListInput input)
```
同时还有映射关系:
``` cs
protected virtual Task<TGetOutputDto> MapToGetOutputDtoAsync(TEntity entity)
protected virtual Task<List<TGetListOutputDto>> MapToGetListOutputDtosAsync(List<TEntity> entities)
protected virtual Task<TGetListOutputDto> MapToGetListOutputDtoAsync(TEntity entity)
protected virtual Task<TGetOutputDto> MapToGetOutputDtoAsync(TEntity entity)
protected virtual Task<List<TGetListOutputDto>> MapToGetListOutputDtosAsync(List<TEntity> entities)
protected virtual Task<TGetListOutputDto> MapToGetListOutputDtoAsync(TEntity entity)
```
另外,它也提供了对应的`仓储`及`当前用户`等常用属性