doc:添加cicd文档模块
This commit is contained in:
56
Yi.Doc.Md/02.框架功能模块教程/08.Crud增删改查.md
Normal file
56
Yi.Doc.Md/02.框架功能模块教程/08.Crud增删改查.md
Normal 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)
|
||||
```
|
||||
另外,它也提供了对应的`仓储`及`当前用户`等常用属性
|
||||
Reference in New Issue
Block a user