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