13 MVC------------EF的带Lambada表达式的分页通用方法



/// <summary>
        /// 终极版带lambada表达式的分页查询
        /// </summary>
        /// <typeparam name="T">获取的分页实体的类型</typeparam>
        /// <param name="whereLambada">查询符合条件的lambada表达式</param>
        /// <param name="orderByLambada">分页根据什么字段进行排序</param>
        /// <param name="pageSize">一页多少条数据</param>
        /// <param name="pageIndex">当前页数</param>
        /// <returns>获取当前页数的实体对象</returns>
        static List<T> GetPageList<T>(Expression<Func<T,bool>> whereLambada,Expression<Func<T,object>> orderByLambada,int pageSize,int pageIndex) where T:class

        {
            //获取数据库模板的上下文对象
            TestOAEntities context = new TestOAEntities();
            //skip()==跳跃,越过多少列   Take==获取多少条
            var pgList = context.Set<T>().Select(s => s).Where(whereLambada).OrderByDescending(orderByLambada).Skip((pageIndex-1)*pageSize).Take(pageSize);
            return pgList.ToList();
        }

       //演化的由来
        //第一步先查询出所有的符合要求的实体对象
        static List<T> GetPageList<T>(Expression<Func<T,bool>> whereLambada) where T:class
        {
            //获取数据库模板的上下文对象
            TestOAEntities context = new TestOAEntities();
            //在where查询中要求传入的是一个当前实体的类型,传出的是一个bool类型的条件
            //select(s=>s)表示选择所有的列,当只需要部分列的时候,select(s=>new{s.SID,s.SName})
            var pgList = context.Set<T>().Select(s => s).Where(whereLambada);
            return pgList.ToList();
        }

        //第二步根据要排序的字段进行排序
        static List<T> GetPageList<T>(Expression< Func<T, bool>> whereLambada, Expression<Func<T, object>> orderByLambada)
            where T:class
        {
            TestOAEntities context = new TestOAEntities();
            var pgList= context.Set<T>().Select(s=>s).Where(whereLambada).OrderByDescending(orderByLambada);
            return pgList.ToList();//取消延迟加载
        }
        //传入当前分页,和一页几条数据的值
        static List<T> GetPageList<T>(Expression<Func<T,bool>> whereLambada,Expression<Func<T,object>> orderByLambada,int pageSize,int pageIndex) where T:class
        {
            TestOAEntities context = new TestOAEntities();
            var pgList= context.Set<T>().Select(s => s).Where(whereLambada).OrderByDescending(orderByLambada).Skip((pageIndex - 1) * pageSize).Take(pageSize);
            return pgList.ToList();
        }

 
时间: 2024-08-10 18:13:54

13 MVC------------EF的带Lambada表达式的分页通用方法的相关文章

转 -- MVC+EF easyui dataGrid 动态加载分页表格

首先上javascript的代码 <script type="text/javascript"> $(function () { LoadGrid(); }) //加载表格!!! function LoadGrid() { $('#roleGrid').datagrid({ width: 900, striped: true, //交替条纹 fitColumns: true, //防止水平滚动 fit: true,//自动补全 iconCls: "icon-sav

APS.NET MVC + EF (01)---Linq和Lambda表达式

1.1 Linq介绍 LINQ全称 Language Integrated Query(语言集成查询).为我们提供一种统一的方式来查询和操作各种数据. LINQ to Object:是针对实现了IEnumerable<T>的对象的LINQ: LINQ to SQL:是针对关系数据库的LINQ: LINQ to XML:是针对XML文档的LINQ. LINQ除了提供一个统一的API来操作各种数据,并且为我们提供了编译时类型检查和动态创建查询表达式的能力. LINQ查询时有两种语法可供选择:查询表

ASP.NET MVC学前篇之Lambda表达式、依赖倒置

前言 随着上篇文章的阅读,可能有的朋友会有疑问,比如(A.Method(xxx=>xx>yy);)类似于这样的函数调用语句,里面的xxx=>xx>yy这些到底是怎么用的? 依赖倒置原则的实现也会在本篇幅的最后来粗略的讲解一下. 本篇没有核心的主题,如果说要强制定义的话就是这些内容都是基础知识,是为了后续学习MVC框架做铺垫. 1 Lambda Lambda表达式在日常的开发中很常见,使用Lambda表达式可以自由的定义函数体并且精简代码量,那么Lambda表达式是什么呢? Lamb

多层架构+MVC+EF+AUTOFAC+AUTOMAPPER【转】

多层架构+MVC+EF+AUTOFAC+AUTOMAPPER 最近使用ligerui搭建了一个简单的教务管理demo,将重要的地方记录,也希望能帮到有这方面需要园友. 一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 二.正文 多层架构中等以上规模以上的系统用得比较多,此demo功能不多,出于抱着学习的态度搭建了一个多层架构,并加入现在很流行的依赖倒转(autofac).对象映射工具(automapper). 话说没图你说

多层架构+MVC+EF+AUTOFAC+AUTOMAPPER

最近使用ligerui搭建了一个简单的教务管理demo,将重要的地方记录,也希望能帮到有这方面需要园友. 一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 二.正文 多层架构中等以上规模以上的系统用得比较多,此demo功能不多,出于抱着学习的态度搭建了一个多层架构,并加入现在很流行的依赖倒转(autofac).对象映射工具(automapper). 话说没图你说个J8,先上框架图: Model层中Entity存放数据库实体

MVC+EF 理解和实现仓储模式和工作单元模式

MVC+EF 理解和实现仓储模式和工作单元模式 原文:Understanding Repository and Unit of Work Pattern and Implementing Generic Repository in ASP.NET MVC using Entity Framework 文章介绍 在这篇文章中,我们试着来理解Repository(下文简称仓储)和Unit of Work(下文简称工作单元)模式.同时我们使用ASP.NET MVC和Entity Framework 搭

ASP.NET MVC+EF框架+EasyUI实现权限管理系列

http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也要感谢大家了,因这个 项目我已经上传了,得到了很多网友的评价,也有好多人发邮件给我说这个框架容易出现问题,不能访问,这也是支持我写这个系列的动力,我将这个项目写成一个 系列

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装 前言:今天经理买了一个诺基亚的Windows Phone 8系统,特感兴趣,所以在哪里看了很长时间,这篇文章就写的有点迟, 从这个Demo开始到现在我已经写了4篇博客了,终于可以看到页面的东

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程 前言:前面几篇博客我们基本已经介绍完了搭建整个项目和数据库访问层以及一些业务逻辑层的实现,当然了,我们的数据库访问层这样还是可以在进行封装的,但是我到这里就行了吧,项目也不大,不需要那么麻烦的,那么我们今天开始介绍我们需要介绍的内容,那就是我