动态多条件查询分页以及排序一)--mvc与entity framework版url分页版动态多条件查询分页以及排序(一)--mvc与entity framework版url分页版动态多条件查询分页以及排序(一)--mvc与entity framework版url分页版动态多条件查询分页以及排序(一)--mvc与entity framework版url分页版.doc
- 1、本文档共149页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
因为此设置被禁用,所订阅的源没有被自动更新。
打开自动源更新
您已成功订阅此源!
可以在 Internet Explorer 及使用“常见源列表”的其他程序中查看更新内容。
查看我的源
您已成功订阅此源!
博客园_
您正在查看的源包含频繁更新的内容。订阅源后,该源会添加到“常见源列表”中。该源的更新信息会自动下载到计算机,通过 Internet Explorer 及其他程序可以查看这些信息。进一步了解源。
订阅该源
博客园_
?2012?年?12?月?4?日,??8:46:24
动态多条件查询分页以及排序(一)--MVC与Entity Framework版url分页版
?2012?年?12?月?4?日,??8:46:00 | wlf
一.前言
多条件查询分页以及排序 每个系统里都会有这个的代码 做好这块 可以大大提高开发效率 所以博主分享下自己的6个版本的 多条件查询分页以及排序
二.目前状况
不论是 还是EF 在做多条件搜索时 都有这类似的代码
这样有几个不好的地方
1.当增加查询条件,需要改代码,对应去写相应的代码。
2.对多表查询以及or的支持 不是很好。而我们很常见的需求不可能是一个表的查询
3. 这样写表示层直接出现 了SQL语句 或者 linq 的拉姆达表达式 这是很不好的 表示层不应该知道数据访问技术
4.有的时候 我们的业务逻辑层接口是这样的 IList*** seach(string name,string age,string classname,int pageindex,int pagesize,string oderby)
这个时候 多一个查询条件 对应的还要去修改业务逻辑层 EF由于传递的是表达式树,则更是苦不堪言.
三.我们接下来应该实现的目标
1.当增加条件时 不需要修改代码 只需要在view上 增加相应的查询框即可
2.我们的多条件查询 应该做到无关表示层技术(是否是MVC或webform)
3.应该支持多表查询 以及OR的操作
4.应该支持更多的查询 like in 不等于 等操作
5.关于分页 不应该与数据访问耦合在一起 个人感觉 分页只需要知道总条数 以及当前页数 和每页多少条 然后生成分页代码即可 不应该与EF等耦合到一起 分页应该是独立出来 可控制的
6.客户可以自己添加搜索条件 这是个强大的功能 想怎么查 客户自己添加即可
7. 统一查询接口 做到有条件增加 不修改代码
8.分页应该支持 url重写或者 mvc路由 不应该生成的连接只是?pageindex=值 这种的
四.我实现的几个多条件查询分页版本以适应各种需求(每篇会写一个版本的实现以及代码的提供,有好意见的欢迎留言)
1.url get提交版 实现URL分页多条件查询以及排序的好处是 我们可以把当前的搜索条件 当前页数 排序等 都在url上显示 可以方便的发给好友 以及后退等浏览器操作(个人给dudu老大建议,博客园应该做成这种的)
2.post 提交版本的 搜索条件较大 不适合用url的
3.ajax+mvc版本的 (关于AJAX实现 我认为有两种 1.服务端实现好内容的拼接,传输给客户端 2直接传递json给客户端 客户端来做拼接)
这个版本会实现服务端拼接内容 好处是 服务端做拼接简单 能做更多的事情 维护服务端代码方便 尤其是强大的Razor
4.ajax+webapi+Knockoutjs 版本
这个版本 我实现的是 服务端只是传递 json 这样服务端效率很高 喜欢这样开发方式的朋友 就是前端拼接字符是很不好的 代码会显得很乱 这个时候 前端就需要一个模版引擎我用的是 jquery-temp 配合强大的Knockoutjs
5.动态增加查询条件版
这个版本我实现的是 客户可以自己添加查询条件 查询条件是动态的
6.移植到webform版
7.EF应该得到表达式树 让EF自己生成SQL语句 这样方便扩展 实现其他方法
五.url get提交版开始
废话了那么多 今天就写下url get版的多条件查询 以及分页 排序
先上个丑陋界面的截图 界面虽丑 但是功能齐全 查询 分页 排序齐全
看下控制器的代码
我们这里没有各种条件判断 判断哪个为空 使用哪个排序的判断 我们的业务逻辑层接口 没有接受表达式树的参数 与数据访问层不是耦合的 而是使用了Querymodel对象 来抽象所有查询条件
这样 这个对象 可以翻译成 EF的表达式树 也可以翻译成SQL语句 所以我们的 表示层MVC 不用非要使用EF的的底层
而我们的分页 只需要知道当前页数 总数据 以及 每
您可能关注的文档
- 定向钻非开挖施工安全一般要定向钻非开挖施工安全一般要求定向钻非开挖施工安全一般要求定向钻非开挖施工安全一般要求.ppt
- 东大街防疫站综合楼东大街防站综合楼疫站综合楼.doc
- 东大---文献检索题库东大--文献检索题库东大---文献检索题库东大---文献检索题库.doc
- 东城区2012中考语文模拟东城区2012中考语文模拟题东城区2012中考语文模拟题东城区2012中考语文模拟题.doc
- 东方国际-第1部分东方国际第1部分-第1部分.doc
- 东方华府目标成本管理责任状方华府目标成本管理责任状东方华府目标成本管理责任状东方华府目标成本管理责任状.doc
- 东方央视财经50指数增强基营销计划方案东方央视财经50指数增强基金营销计划方案东方央视财经50指数增强基金营销计划方案东方央视财经50指数增强基金营销计划方案.doc
- 东风潜力投资组合版2014303东风潜力投资组合版20140303东风潜力投资组合版20140303东风潜力投资组合版20140303.doc
- 东方增长中小盘混合型产品介东方增长中小盘混合型产品介绍东方增长中小盘混合型产品介绍东方增长中小盘混合型产品介绍.ppt
- 东方汉院项目介绍东方汉院项介绍目介绍.ppt
- 2024年全球及中国离线自动光学检测设备行业头部企业市场占有率及排名调研报告djs.docx
- 2023年湖南省新高考地理试卷.pdf
- 督导管理手册.pdf
- DB22_T 5064-2024 城镇供热企业运行管理评价标准.pdf
- DB22_T 5169-2024 建筑施工高处作业吊篮应用标准.pdf
- DB61_T 1873-2024 观赏海棠嫁接育苗技术规范.pdf
- DB41_T 2782-2024 旅游公路设计技术指南.pdf
- DB37_T 5306-2024 建筑桩基工程鉴定与加固技术规程.pdf
- DB22_T 5168-2024 城市道路抗冰防滑沥青路面技术标准.pdf
- DB5133_T 108-2024 青稞种质资源评价技术规范.pdf
文档评论(0)