簡體   English   中英

我可以在CRUD服務GetAll中使用EF Core 2.0'AsNoTracking'嗎?

[英]Can I use EF Core 2.0 'AsNoTracking' in CRUD service GetAll?

我有一個實現以下目的的應用程序服務:

public interface IPracticeAppService : IAsyncCrudAppService<PracticeDto, int, PagedAndSortedResultRequestDto,CreatePracticeDto, PracticeDto>

我想使用AsNoTracking

在下面的示例中,有沒有一種使用AsNoTracking

public override Task<PagedResultDto<PracticeDto>> GetAll(PagedAndSortedResultRequestDto input)
{    
    return base.GetAll(input);
}

是。 但是, .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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM