Ejemplo n.º 1
0
        /// <summary>
        /// 查询分页
        /// </summary>
        /// <typeparam name="TKey">排序键</typeparam>
        /// <param name="pageNumber">页码</param>
        /// <param name="pageSize">页大小</param>
        /// <param name="predicate">筛选条件</param>
        /// <param name="keySelector">用于从元素中提取键的函数</param
        /// <param name="orderBy">排序方式(默认 Asc)</param>
        /// <returns></returns>
        public Pagination <TEntity> QueryPaging <TKey>(int pageNumber, int pageSize, Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy)
        {
            var total      = Count(predicate);
            var pagination = new Pagination <TEntity>(pageNumber, pageSize, total);

            if (total == 0)
            {
                pagination.List = new List <TEntity>();
                return(pagination);
            }
            //
            var queryable = DbEntities;

            if (predicate != null)
            {
                queryable = queryable.Where(predicate);
            }
            //
            if (orderBy == OrderByFlag.Desc)
            {
                queryable = queryable.OrderByDescending(keySelector);
            }
            else
            {
                queryable = queryable.OrderBy(keySelector);
            }
            queryable       = queryable.Skip(pagination.PageSize * (pagination.PageNumber - 1)).Take(pagination.PageSize);
            pagination.List = queryable.ToList();
            //
            return(pagination);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 查询
        /// </summary>
        /// <typeparam name="TKey">排序键</typeparam>
        /// <param name="predicate">筛选条件</param>
        /// <param name="keySelector">用于从元素中提取键的函数</param>
        /// <param name="orderBy">排序方式(默认 Asc)</param>
        /// <returns></returns>
        public List <TEntity> Query <TKey>(Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy)
        {
            var queryable = DbEntities;

            if (predicate != null)
            {
                queryable = queryable.Where(predicate);
            }
            //
            if (orderBy == OrderByFlag.Desc)
            {
                queryable = queryable.OrderByDescending(keySelector);
            }
            else
            {
                queryable = queryable.OrderBy(keySelector);
            }
            //
            return(queryable.ToList());
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 查询分页
 /// </summary>
 /// <typeparam name="TKey">排序键</typeparam>
 /// <param name="pageNumber">页码</param>
 /// <param name="pageSize">页大小</param>
 /// <param name="keySelector">用于从元素中提取键的函数</param
 /// <param name="orderBy">排序方式(默认 Asc)</param>
 /// <returns></returns>
 public Pagination <TEntity> QueryPaging <TKey>(int pageNumber, int pageSize, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy)
 {
     return(QueryPaging(pageNumber, pageSize, null, keySelector, orderBy));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 查询
 /// </summary>
 /// <typeparam name="TKey">排序键</typeparam>
 /// <param name="keySelector">用于从元素中提取键的函数</param>
 /// <param name="orderBy">排序方式(默认 Asc)</param>
 /// <returns></returns>
 public List <TEntity> Query <TKey>(Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy)
 {
     return(Query(null, keySelector, orderBy));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 查询分页
 /// </summary>
 /// <typeparam name="TKey">排序键</typeparam>
 /// <param name="pageNumber">页码</param>
 /// <param name="pageSize">页大小</param>
 /// <param name="predicate">筛选条件</param>
 /// <param name="keySelector">用于从元素中提取键的函数</param
 /// <param name="orderBy">排序方式(默认 Asc)</param>
 /// <returns></returns>
 public Pagination <TEntity> QueryPaging <TKey>(int pageNumber, int pageSize, Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy)
 {
     return(EntityRepository.QueryPaging(pageNumber, pageSize, predicate, keySelector, orderBy));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 查询
 /// </summary>
 /// <typeparam name="TKey">排序键</typeparam>
 /// <param name="predicate">筛选条件</param>
 /// <param name="keySelector">用于从元素中提取键的函数</param>
 /// <param name="orderBy">排序方式(默认 Asc)</param>
 /// <returns></returns>
 public List <TEntity> Query <TKey>(Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy)
 {
     return(EntityRepository.Query(predicate, keySelector, orderBy));
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 获取排序方式
 /// </summary>
 /// <param name="sortOrder"></param>
 /// <returns></returns>
 public static OrderByFlag GetOrderBy(string sortOrder, OrderByFlag defaultValue = OrderByFlag.Asc)
 {
     return(EnumUtil.ConvertToEnum(sortOrder, defaultValue, null));
 }
Ejemplo n.º 8
0
        /// <summary>
        /// 根据属性名称排序
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="queryable">查询数据实体集合</param>
        /// <param name="propertyName">属性名称</param>
        /// <param name="orderBy">排序方式</param>
        /// <returns></returns>
        public static IQueryable <T> PagingOrder <T>(IQueryable <T> queryable, string propertyName, OrderByFlag orderBy)
        {
            //参数 p, p=>p.
            var     param       = Expression.Parameter(typeof(T), "p");
            var     body        = Expression.Property(param, propertyName);
            dynamic keySelector = Expression.Lambda(body, param);

            if (orderBy == OrderByFlag.Desc)
            {
                return(Queryable.OrderByDescending(queryable, keySelector));
            }
            else
            {
                return(Queryable.OrderBy(queryable, keySelector));
            }
        }