在进行数据查询的时候我们有真分页和假分页两种,所谓真分页就是按照根据pageIndex(当前页码)和pageSize(每页的记录条数)去数据库中查找响应的记录,而假分页呢就是先把数据的所有记录都查出来,然后在自己去截取其实截取的过程是一样的,只不过一个是在数据库中进行,一个是在我们的逻辑代码中进行。下面给大家介绍一种分页写法,让大家更好的使用lambda语句,并且能更好的理解分页查询。
#region 多条件搜索用户信息
public IQueryable<UserInfo>SearchUserInfo(Model.SearchParam.UserInfoSearch userInfoSerachParam)
{
//加载所有信息
var temp =this.DbSession.UserInfoDal.LoadEntities(c=>true);
if(!string.IsNullOrEmpty(userInfoSerachParam.UserName))
{
//进行条件筛选(根据姓名筛选)
temp =temp.Where<UserInfo>(c =>c.UserName.Contains(userInfoSerachParam.UserName));
}
if(!string.IsNullOrEmpty(userInfoSerachParam.UserMail))
{
//进行条件筛选(根据邮箱筛选)
temp =temp.Where<UserInfo>(c=>c.Email.Contains(userInfoSerachParam.UserMail));
}
//总记录条数
userInfoSerachParam.TotalCount =temp.Count();
//截取当前PageIndex 下的PageSize条记录
return temp.OrderBy<UserInfo,int>(c => c.ID).Skip<UserInfo>((userInfoSerachParam.PageIndex - 1)*userInfoSerachParam.PageSize).Take<UserInfo>(userInfoSerachParam.PageSize);
}
#endregion版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/xfz0330/article/details/48111085