public IHttpActionResult GetSalesData([FromUri] QueryParams1 queryParams) { var data = _salesDataService.GetSalesData(queryParams); return(Json(new RespResult <SalesData> { IsOk = 1, Count = data.TotalCount, Result = data })); }
// 必须动态生成查询字符串 public PagedList <SalesData> GetSalesData(QueryParams1 queryParams) { var data = DbContext.SalesData.AsQueryable(); if (queryParams.STime.HasValue && queryParams.ETime.HasValue) { if (queryParams.STime.Value != queryParams.ETime.Value) { // data = data.Where(x => x.Yyyymmdd >= queryParams.STime && x.Yyyymmdd<= queryParams.ETime ); data = data.Where("Yyyymmdd>=" + queryParams.STime + " and Yyyymmdd<=" + queryParams.ETime); } else { data = data.Where(x => x.Yyyymmdd == queryParams.STime); } } if (queryParams.Stat.HasValue) { data = data.Where(x => x.Stat_code == queryParams.Stat); } if (!string.IsNullOrEmpty(queryParams.M_id)) { data = data.Where(x => x.M_id == queryParams.M_id); } // 以下便是动态linq:查询字段动态 if (!string.IsNullOrEmpty(queryParams.TypeValue)) { data = data.Where(queryParams.QueryType + "=" + queryParams.TypeValue); //if (queryParams.QueryType == "O_cd") // data = data.Where(x => x.O_cd == queryParams.TypeValue); //else // data = data.Where(x => x.P_cd == queryParams.TypeValue); } var query = data.OrderBy(o => o.Yyyymmdd).ThenBy(o => o.Hhmiss).ToPagedList(queryParams.Offset / queryParams.Limit + 1, queryParams.Limit); return(query); }