C# EF框架简单实现动态条件查询、排序、分页

EF动态条件查询很简单,就是连着用Where就行了,下面看例子:
有一张User表,字段Id,Name,Age,Sex

var pageSize = 20; //每页记录数
var pageNum = 1;   //当前页码

//
// 根据用户姓名、年龄范围、性别来查询用户,结果按照用户ID倒序排序
// 参数:
//		name: 用户姓名
//		beginAge: 年龄范围的开始值
//		endAge: 年龄范围的结束值
//		sex: 性别
//		count: 总记录数
// 返回:
//		筛选的用户列表
//
private List<User> getUser(string name, int beginAge, int endAge, int sex, out int count)
{
	//这里db是继承DbContext类new出来的对象,全局用一个就行了
	//防止查询条件都不满足,先生成一个空的查询
	var where = db.Users.Where(user => true);
	//设置name条件
	if (!String.IsNullOrEmpty(name)) 
	{
		where = where.Where(user => user.Name = name);
	} 
	//设置年龄条件
	if (beginAge > 0 && beginAge < endAge) 
	{
		where = where.Where(user => user.Age >= beginAge && user.Age < endAge);
	}
	//设置性别条件
	if (sex > 0)
	{
		where = where.Where(user => user.Sex = sex);
	} 
	//统计总记录数
	count = where.Count();
	//结果按照ID倒序排序
	where = where.OrderByDescending(user => user.Id);
    //跳过翻页的数量
    where = where.Skip(pageSize * (pageNum - 1));
    //获取结果,返回
    return where.Take(pageSize).ToList();
}

好了这就简单,EF的动态查询~~

发布了7 篇原创文章 · 获赞 3 · 访问量 6341

猜你喜欢

转载自blog.csdn.net/longfeng1234/article/details/102744914