登录 / 注册
C# EF框架简单实现动态条件查询、排序、分页
发布时间:2019-12-11 09:37:12 查看:3957
F动态条件查询很简单,就是连着用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();
}

宁夏银川舜新艺软件开发
ShunXinyi Soft develop
主要经营
软件开发,网站制作,网页设计,移动应用(安卓、苹果),微信,微网站,
FLASH动画,电子商务,计算机软硬件及网络设备等。
电话:18695132945 QQ:23923027
舜新艺软件开发 宁ICP备16001093号-1 宁公网安备 64010602000809号