/// <summary> /// 传入集合分页 /// </summary> /// <typeparam name="S"></typeparam> /// <typeparam name="OrderByType"></typeparam> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="list">传入的集合</param> /// <param name="whereLambda"></param> /// <param name="orderbyLambad"></param> /// <returns></returns> public PageOfItems <S> PageOfItemBySelfModel <S, OrderByType>(int pageIndex, int pageSize, IQueryable <S> list, System.Linq.Expressions.Expression <Func <S, bool> > whereLambda, System.Linq.Expressions.Expression <Func <S, OrderByType> > orderbyLambad = null, bool isAsc = true) { var info = list.Where <S>(whereLambda); var list_return = new PageOfItems <S>() { PageNumber = pageIndex, PageSize = pageSize, TotalItemCount = info.Count() }; IQueryable <S> orderList = null; if (orderbyLambad != null) { if (isAsc) { orderList = info.OrderBy <S, OrderByType>(orderbyLambad).Skip <S>((pageIndex - 1) * pageSize).Take <S>(pageSize); } else { orderList = info.OrderByDescending <S, OrderByType>(orderbyLambad).Skip <S>((pageIndex - 1) * pageSize).Take <S>(pageSize); } } else { orderList = info.Skip <S>((pageIndex - 1) * pageSize).Take <S>(pageSize); } list_return.AddRange(orderList.ToList()); return(list_return); }
/// <summary> /// 分页查询 /// </summary> /// <typeparam name="s">排序字段</typeparam> /// <param name="pageIndex">页码</param> /// <param name="pageSize">分页尺寸</param> /// <param name="whereLambda">条件</param> /// <param name="orderbyLambad">排序条件</param> /// <param name="isAsc">正序:true 倒序:false </param> /// <returns></returns> public PageOfItems <T> PageOfItemsLoadPageEntites <s>(int pageIndex, int pageSize, System.Linq.Expressions.Expression <Func <T, bool> > whereLambda, System.Linq.Expressions.Expression <Func <T, s> > orderbyLambad = null, bool isAsc = true) { var info = _db.Set <T>().Where <T>(whereLambda); var list = new PageOfItems <T>() { PageNumber = pageIndex, PageSize = pageSize, TotalItemCount = info.Count() }; IQueryable <T> orderList = null; if (isAsc) { orderList = info.OrderBy <T, s>(orderbyLambad).Skip <T>((pageIndex - 1) * pageSize).Take <T>(pageSize); } else { orderList = info.OrderByDescending <T, s>(orderbyLambad).Skip <T>((pageIndex - 1) * pageSize).Take <T>(pageSize); } list.AddRange(orderList.ToList()); return(list); }
/// <summary> /// 管理员账号 获取沙龙信息表 /// </summary> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">一页X条</param> /// <returns></returns> public PageOfItems <SalonSimple> GetSalonList(int pageIndex, int pageSize, string saleName = null, Func <IQueryable <t_salemanager> > func = null) { IQueryable <SalonSimple> salons = null; IQueryable <t_salon> info = null; var list = new PageOfItems <SalonSimple>() { PageNumber = pageIndex, PageSize = pageSize, TotalItemCount = (saleName == null || saleName == "") ? _db.t_salon.Count() : _db.t_salemanager.Where(c => c.sm_name.Contains(saleName)).Count() }; var beginNum = (pageIndex - 1) * pageSize; info = saleName == null?_db.t_salon.OrderByDescending(a => a.s_date).Skip(beginNum).Take(pageSize) : _db.t_salon; if (func != null) { salons = from a in info join b in func() on a.s_uid equals b.sm_s_uid into pro from x in pro.DefaultIfEmpty() where ((saleName == null || saleName == "") ? true : x.sm_name.Contains(saleName)) select new SalonSimple { Uid = a.s_uid, Cell = a.s_cell, Nickname = a.s_nickname, Logo = a.s_logo, Opendate = a.s_opendate, Status = a.s_status, Businessdate = a.s_businessdate, LinkName = a.s_linkname, LastTime = x.sm_editdate, Sale_Id = x.sm_id, SaleName = x.sm_name, Recommend = a.s_recommend }; } else { salons = info.Select(a => new SalonSimple { Uid = a.s_uid, Cell = a.s_cell, Nickname = a.s_nickname, Logo = a.s_logo, Opendate = a.s_opendate, Status = a.s_status, Businessdate = a.s_businessdate, LinkName = a.s_linkname }); } list.AddRange(saleName == null ? salons.ToList() : salons.OrderByDescending(c => c.LastTime).Skip(beginNum).Take(pageSize).ToList()); return(list); }
/// <summary> /// 分页数据获取 /// </summary> /// <param name="whereClause"></param> /// <param name="fields"></param> /// <param name="orderBy"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public IPageOfItems <T> GetPaged(string whereClause, string fields, string orderBy, int pageIndex, int pageSize) { whereClause = whereClause.Replace("'", "''"); var pageOfItems = new PageOfItems <T> { PageIndex = pageIndex, PageSize = pageSize }; //var sqlClause = // string.Format("EXEC [dbo].[up_GetPaged] '{0}','{1}' ,'{2}','{3}','{4}',{5},{6}", // TableName, fields, whereClause, orderBy, PrimaryKeyName, pageIndex, pageSize); var parameters = new[] { new SqlParameter("@TableName", SqlDbType.NVarChar, 255), new SqlParameter("@Fields", SqlDbType.NVarChar, 255), new SqlParameter("@WhereClause", SqlDbType.NVarChar, 2000), new SqlParameter("@OrderBy", SqlDbType.NVarChar, 255), new SqlParameter("@PrimaryKey", SqlDbType.NVarChar, 255), new SqlParameter("@PageIndex", SqlDbType.Int, 4), new SqlParameter("@PageSize", SqlDbType.Int, 4), }; parameters[0].Value = TableName; parameters[1].Value = string.IsNullOrEmpty(fields) ? "*" : fields; parameters[2].Value = whereClause ?? string.Empty; parameters[3].Value = orderBy ?? string.Empty; parameters[4].Value = PrimaryKeyName; parameters[5].Value = pageIndex; parameters[6].Value = pageSize; using (var reader = DbHelperSql.RunProcedure(ConnectionString, "up_GetPaged", parameters)) { var list = FormatModel(reader, pageSize).ToReadOnlyCollection(); if (reader.Tables.Count >= 2 && reader.Tables[1].Rows.Count > 0) { var row = reader.Tables[1].Rows[0]; if (row["TotalRowCount"] == DBNull.Value) { pageOfItems.TotalItemCount = 0; } else { pageOfItems.TotalItemCount = (Int32)row["TotalRowCount"]; } } pageOfItems.AddRange(list); } return(pageOfItems); //using (var reader = ExecuteDataSet(sqlClause)) //{ // var list = FormatModel(reader, pageSize).ToReadOnlyCollection(); // if (reader.Tables.Count >= 2 && reader.Tables[1].Rows.Count > 0) // { // var row = reader.Tables[1].Rows[0]; // if (row["TotalRowCount"] == DBNull.Value) pageOfItems.TotalItemCount = 0; else pageOfItems.TotalItemCount = (Int32)row["TotalRowCount"]; // } // pageOfItems.AddRange(list); //} //return pageOfItems; }