/// <summary> /// 分页获取数据 /// </summary> /// <param name="startIndex"></param> /// <param name="count"></param> /// <returns></returns> public List <T> GetSimplePagedData <T, Tkey>(GetPageListParameter <T, Tkey> parameter, out int count) where T : class { count = db.Set <T>().Where <T>(parameter.whereLambda).Count(); var list = db.Set <T>().Where <T>(parameter.whereLambda); if (parameter.isAsc) { list = list.OrderBy(parameter.orderByLambda); } else { list = list.OrderByDescending(parameter.orderByLambda); } if (parameter.pageIndex <= 0) { parameter.pageIndex = 1; } if (parameter.pageIndex >= count) { parameter.pageIndex = count; } parameter.pageIndex = parameter.pageIndex == 0 ? 1 : parameter.pageIndex; //.AsNoTracking() 去除缓存读取数据。 return(list.AsNoTracking().Skip((parameter.pageIndex - 1) * parameter.pageSize).Take(parameter.pageSize).ToList()); }
/// <summary> /// 支持sql 语句查询返回结果 /// </summary> /// <typeparam name="T"></typeparam> /// <typeparam name="Tkey"></typeparam> /// <param name="sql"></param> /// <param name="parameter"></param> /// <param name="count"></param> /// <returns></returns> public List <T> GetSqlPagedData <T, Tkey>(string sql, GetPageListParameter <T, Tkey> parameter, out int count) where T : class { count = db.Database.SqlQuery <T>(sql).Count(); DbRawSqlQuery <T> list = db.Database.SqlQuery <T>(sql); if (parameter.pageIndex <= 0) { parameter.pageIndex = 1; } if (parameter.pageIndex >= count) { parameter.pageIndex = count; } return(list.Skip((parameter.pageIndex - 1) * parameter.pageSize).Take(parameter.pageSize).ToList()); }