zoukankan      html  css  js  c++  java
  • 使用Expression进行动态排序分页

    Expression动态查询、分页

    Expression,表达式树,以lamda表达式创建,就以表达式目录树的形式将强类型的lambda表达式标识为数据结构。

    排序

     /// <summary>
            /// 根据条件排序和查询
            /// </summary>
            /// <typeparam name="TKey">排序字段类型</typeparam>
            /// <param name="whereLambda">查询条件 lambda表达式</param>
            /// <param name="orderLambda">排序条件 lambda表达式</param>
            /// <returns></returns>
            public static  IEnumerable<Customers> GetListBy<TKey>(Expression<Func<Customers, bool>> whereLambda, Expression<Func<Customers, TKey>> orderLambda)
            {
                using (NorthwindEntities db = new NorthwindEntities())
                {
                    return db.Customers.Where(whereLambda).OrderBy(orderLambda).ToList();
                }
            }

    常见分页

     /// <summary>
            /// 分页查询
            /// </summary>
            /// <param name="pageIndex">页码</param>
            /// <param name="pageSize">页容量</param>
            /// <param name="whereLambda">条件 lambda表达式</param>
            /// <param name="orderBy">排序 lambda表达式</param>
            /// <returns></returns>
            public static List<Customers> GetPagedList<TKey>(int pageIndex, int pageSize, Expression<Func<Customers, bool>> whereLambda,
                        Expression<Func<Customers, TKey>> orderBy)
            {
                using (NorthwindEntities db = new NorthwindEntities())
                {
                    // 分页时一定注意: Skip 之前一定要 OrderBy
                    return db.Customers.Where(whereLambda).OrderBy(orderBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
                }
            }

     调用:

     var a = GetListBy<string>((p)=> p.CustomerID == "11", (q) => q.ContactName);
      IQueryable<Orders> or = db.Orders.Where(u=>u.CustomerID=="11").Take(1);
                    List<Orders> aa = or.ToList();
  • 相关阅读:
    ASCII到Unicode到UTF-8
    .NET项目引用黄色小三角以及找不到依赖的解决方法
    MongodbHelper
    SqlHelper分享
    C#_02.16_基础七_.NET表达式&运算符
    C#_02.15_基础六_.NET类
    C#_02.14_基础五_.NET类
    C#_02.13_基础四_.NET方法
    C#_02.13_基础三_.NET类基础
    C#_02.12_基础二_.NET类型存储和变量
  • 原文地址:https://www.cnblogs.com/qiuguochao/p/6838946.html
Copyright © 2011-2022 走看看