[英]Can I use EF Core 2.0 'AsNoTracking' in CRUD service GetAll?
I have an Application Service that implements: 我有一个实现以下目的的应用程序服务:
public interface IPracticeAppService : IAsyncCrudAppService<PracticeDto, int, PagedAndSortedResultRequestDto,CreatePracticeDto, PracticeDto>
I would like to use AsNoTracking
. 我想使用
AsNoTracking
。
In the example below, is there a way of using AsNoTracking
? 在下面的示例中,有没有一种使用
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. 但是,
.AsNoTracking()
仅适用于IQueryable
因此您不能调用base
方法。
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()
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.