lambda语句实现分页查询

      在进行数据查询的时候我们有真分页和假分页两种,所谓真分页就是按照根据pageIndex(当前页码)和pageSize(每页的记录条数)去数据库中查找响应的记录,而假分页呢就是先把数据的所有记录都查出来,然后在自己去截取其实截取的过程是一样的,只不过一个是在数据库中进行,一个是在我们的逻辑代码中进行。下面给大家介绍一种分页写法,让大家更好的使用lambda语句,并且能更好的理解分页查询。

#region 多条件搜索用户信息
        public IQueryableSearchUserInfo(Model.SearchParam.UserInfoSearch userInfoSerachParam)
        {
//加载所有信息
            var temp =this.DbSession.UserInfoDal.LoadEntities(c=>true);
            if(!string.IsNullOrEmpty(userInfoSerachParam.UserName))
            {
//进行条件筛选(根据姓名筛选)
                temp =temp.Where(c =>c.UserName.Contains(userInfoSerachParam.UserName));
            }
 if(!string.IsNullOrEmpty(userInfoSerachParam.UserMail))
            {
//进行条件筛选(根据邮箱筛选)
                temp =temp.Where(c=>c.Email.Contains(userInfoSerachParam.UserMail));
            }
//总记录条数
            userInfoSerachParam.TotalCount =temp.Count();
//截取当前PageIndex 下的PageSize条记录
            return temp.OrderBy(c => c.ID).Skip((userInfoSerachParam.PageIndex - 1)*userInfoSerachParam.PageSize).Take(userInfoSerachParam.PageSize);
        }
        #endregion


你可能感兴趣的:(【编程语言】)