/// <summary> /// 获取筛选 Queryable /// </summary> /// <param name="filter"></param> /// <returns></returns> public virtual IQueryable <TEntity> QueryableFilterEntities(Dictionary <string, string> filter = null, bool isDelete = false) { var query = Entities(isDelete); if (filter != null) { var tmpExpression = LambdaHelper.True <TEntity>(); foreach (var keyValue in filter) { tmpExpression = tmpExpression.And <TEntity>(LambdaHelper.GetContains <TEntity>(keyValue.Key, keyValue.Value)); } query = query.Where(tmpExpression); } return(query); }
public PagedResultDto <ReagentInfoDto> GetReagentInfosPage(GetReagentInfosInput input) { //帅选 var where = LambdaHelper.True <TB_ReagentInfo>(); if (input.Filters != null && input.Filters.Count > 0) { foreach (var item in input.Filters) { if (item.ColumName == "ReagentName") { item.ColumValue = item.ColumValue.ToUpper(); } where = where.And(LambdaHelper.GetContains <TB_ReagentInfo>(item.ColumName, item.ColumValue)); } } var query = repository.GetAll().Where(where); //排序 if (!string.IsNullOrEmpty(input.Sorting)) { if (input.Sorting.Contains("-")) { var sort = input.Sorting.Split("-"); query = sort[1] == "desc" ? query.OrderByDescending(sort[0]) : query.OrderBy(sort[0]); } else { query = query.OrderBy(input.Sorting); } } else { query = query.OrderBy(t => t.ID); } //query = !string.IsNullOrEmpty(input.Sorting) ? query.OrderBy(input.Sorting) : query.OrderBy(t => t.ID); //获取总数 var totalCount = query.Include(a => a.ID).Count(); //默认的分页方式 //var reagentList = query.Skip(input.SkipCount).Take(input.MaxResultCount).ToList(); //ABP提供了扩展方法PageBy分页方式 var reagentList = query.PageBy(input).ToList(); var result = new PagedResultDto <ReagentInfoDto>(totalCount, ObjectMapper.Map <List <ReagentInfoDto> >(reagentList)); return(result); }