I have an Application Service that implements:
public interface IPracticeAppService : IAsyncCrudAppService<PracticeDto, int, PagedAndSortedResultRequestDto,CreatePracticeDto, PracticeDto>
I would like to use AsNoTracking
.
In the example below, is there a way of using AsNoTracking
?
public override Task<PagedResultDto<PracticeDto>> GetAll(PagedAndSortedResultRequestDto input)
{
return base.GetAll(input);
}
Yes. However, .AsNoTracking()
only applies to IQueryable
so you can't call the base
method.
public override async Task<PagedResultDto<PracticeDto>> GetAll(PagedAndSortedResultRequestDto input)
{
CheckGetAllPermission();
var query = CreateFilteredQuery(input).AsNoTracking(); // Here!
var totalCount = await AsyncQueryableExecuter.CountAsync(query);
query = ApplySorting(query, input);
query = ApplyPaging(query, input);
var entities = await AsyncQueryableExecuter.ToListAsync(query);
return new PagedResultDto<PracticeDto>(
totalCount,
entities.Select(MapToEntityDto).ToList()
);
}