public async Task <PageModelDto <CfgDto> > GetPagedAsync(CfgSearchPagedDto search) { var whereExpression = ExpressionCreator .New <SysCfg>() .AndIf(search.Name.IsNotNullOrWhiteSpace(), x => EF.Functions.Like(x.Name, $"{search.Name}%")) .AndIf(search.Value.IsNotNullOrWhiteSpace(), x => EF.Functions.Like(x.Value, $"{search.Value}%")); var total = await _cfgRepository.CountAsync(whereExpression); if (total == 0) { return(new PageModelDto <CfgDto>(search)); } var entities = await _cfgRepository .Where(whereExpression) .OrderByDescending(x => x.ModifyTime) .Skip(search.SkipRows()) .Take(search.PageSize) .ToListAsync(); var cfgDtos = Mapper.Map <List <CfgDto> >(entities); return(new PageModelDto <CfgDto>(search, cfgDtos, total)); }