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();

最新文章

  1. android sdcard信息获取
  2. Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的TransactionManager)
  3. 【干货分享】Node.js 中文资料导航
  4. Memcache笔记05-Memcache安全性
  5. 学习cocos-js的准备工作
  6. Design Patterns----简单的工厂模式
  7. 苹果在Xcode6中弃用segue的push和model
  8. MYSQL 没有varchar(max)这个类型。
  9. 基于注解Spring MVC综合Hibernate(需要jar包,spring和Hibernate整合配置,springMVC组态,重定向,)批量删除
  10. Akka(40): Http:Marshalling reviewed - 传输数据序列化重温
  11. windows 下共享内存使用方法示例
  12. live555编译环境
  13. python pip安装其他模块到中途失败问题
  14. Vue 编程式导航(通过js跳转页面)以及路由hash模式和history模式
  15. BZOJ.4340.[BJOI2015]隐身术(后缀数组 搜索)
  16. sql将服务器名称换成本地IP
  17. 6M - 循环多少次?
  18. What is systemvolumeinformation? delete it?
  19. JDBC及Filter
  20. Hive(四)Hive的3种连接方式与DbVisualizer连接Hive

热门文章

  1. Redis-简单实现星形主从配置
  2. HDU5727 Necklace(二分图匹配)
  3. Uva 548 二叉树的递归遍历lrj 白书p155
  4. js prototype 继承
  5. jQuery 去空
  6. jQuery实现拼图小游戏
  7. python实战第一天-socket模块练习
  8. NYOJ--94--cigarettes
  9. C#多线程的用法1-简单示例
  10. 将execl里的数据批量导入数据库