MVC+EF 多条件查询
根据以前的做法是拼接sql语句,这会增加维护成本,因为sql语句里的内容不会报错,所以在使用ef的时候必须要抛弃拼接sql语句的习惯。
构建实例
 List<vyw_user> list = null;
 IQueryable<vyw_user> result = Ctx.vyw_user;//Ctx表示EF上下文
构建搜索条件
if (!string.IsNullOrEmpty(mobile) || !string.IsNullOrEmpty(usertype) || !string.IsNullOrEmpty(logintimestart) || !string.IsNullOrEmpty(logintimeend)) //搜索情况 假设有四个条件
            {
                #region 搜索情况
                if (mobile.Trim().Length > 0)//手机号码
                {
                    result = result.Where(c => c.mobile.Contains(mobile));
                }
                int usertypeid = Convert.ToInt32(usertype);
                if (usertypeid != -1)//用户类型
                {
                    result = result.Where(c => c.userType == usertypeid);
                }
                if (logintimestart.Trim().Length > 0 && logintimeend.Trim().Length > 0)//搜索查询时间
                {
                    DateTime bstart = Convert.ToDateTime(logintimestart);
                    DateTime bend = Convert.ToDateTime(logintimeend);
                    result = result.Where(c => c.loginTime >= bstart && c.loginTime <= bend);
                }
                #endregion
            }
执行数据查询
 count = result.Where(c => true).Count();//数据的统计
 list = result.Where(c => true).ToList();//数据查询
参数过滤
很多情况下查询到的结果并不能满足我们的需要,还需要进行一些处理,这里需要用linq
var list1 = from d in list
select new
{
userID = d.userID,
mobile = d.mobile,
userType = Enum.GetName(typeof(Enum_userType), d.userType),
fund = d.fund,
certifyName = d.certifyName,
certifyNo = d.certifyNo,
isCertify = Enum.GetName(typeof(Enum_cetifyType), d.isCertify),
certifyTime = d.certifyTime == null ? "" : Convert.ToDateTime(d.certifyTime).ToString("yyyy-MM-dd HH:mm:ss"),
signTime = Convert.ToDateTime(d.signTime).ToString("yyyy-MM-dd HH:mm:ss"),
loginTime = d.loginTime == null ? "" : Convert.ToDateTime(d.loginTime).ToString("yyyy-MM-dd HH:mm:ss")
};
MVC+EF 多条件查询的更多相关文章
- MVC EF两种查询方法
		@*@model IQueryable<EFExam.Models.Product>*@@model IQueryable<EFExam.Models.ProductViewMode ... 
- AsExpandable EF多条件查询
		我个人学习新技术有一个方法,如果遇到问题会根据以前的经验来寻找一些类似的解决方法.有人会说,如果这个问题在你的学习或者工作生涯中都没有遇到过呢?很简单,通过搜索资料或查阅相关书籍学习别人的经验. 在如 ... 
- MVC+EF 序列化类型为“System.Data.Entity.DynamicProxies.__的对象时检测到循环引用
		用MVC+EF做简单查询时,返回json格式数据出现问题 原代码: public ActionResult JSon({ NorthwindEntities db = new NorthwindEnt ... 
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现
		原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架 ... 
- 动态多条件查询分页以及排序(一)--MVC与Entity Framework版url分页版
		一.前言 多条件查询分页以及排序 每个系统里都会有这个的代码 做好这块 可以大大提高开发效率 所以博主分享下自己的6个版本的 多条件查询分页以及排序 二.目前状况 不论是ado.net 还是EF ... 
- asp.net MVC EF Where 过滤条件怎么写
		做.Net开发的肯定都知道.Net Sql语句有个SqlParameter 一般用来做过滤判断逻辑写,那么到了EF 了还有这样的写法嘛?答案肯定是有的了,这里我只是把最粗糙和简单的写法罗列一些,具体封 ... 
- Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)
		推荐视频:尚硅谷Spring Data JPA视频教程,一学就会,百度一下就有, 后台代码:在DAO层继承Spring Data JPA的PagingAndSortingRepository接口实现的 ... 
- ASP.NET MVC EF直接更新数据(不需查询)
		EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动 ... 
- EF:分页查询 + 条件查询 + 排序
		/// <summary> /// linq扩展类---zxh /// </summary> /// <typeparam name="T">& ... 
随机推荐
- 自制EF(iShare  Demo版)
			由于公司使用的所有技术都比较倾向于使用原生,不怎么借用其他第三方框架(无论是前端布局,样式,到后台的框架).公司也算比较小型的没有太大的项目 可以让我们进行团队合作项目,几乎是一人接手一个项目.然后自 ... 
- Sprite(雪碧图)的应用
			雪碧图是根据CSS sprite音译过来的,是将很多很多的小图标放在一张图片上. 使用雪碧图的目的:有时为了美观,我们会使用一张图片来代替一些小图标,但是一个网页可能有很多的小图标,浏览器在显示页面的 ... 
- 基于上三角变换或基于DFS的行(列)展开的n阶行列式求值算法分析及性能评估
			进入大一新学期,看完<线性代数>前几节后,笔者有了用计算机实现行列式运算的想法.这样做的目的,一是巩固自己对相关概念的理解,二是通过独立设计算法练手,三是希望通过图表直观地展现涉及的两种算 ... 
- 自己电脑组一个Wifi热点
			① 在cmd窗口 ssid 是wifi名称.key是密码 netsh wlan set hostednetwork mode=allow ssid=yb key=15564130 ② ③ 运行脚本 新 ... 
- Jupyter Notebook 快捷键使用指南
			因为使用Jupyter Notebook用鼠标选择菜单影响效率,遂将快捷命令记录于此 转自:http://blog.konghy.cn/2017/05/04/jupyter-notebook-hotk ... 
- 25. Reverse Nodes in k-Group (JAVA)
			Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k ... 
- python脚本处理下载的b站学习视频
			作为常年在b站学习的我,一直以来看到有兴趣的视频,从来都是点赞收藏下载三连,但是苦于我那小钢炮iphone se屏幕大小有限,看起视频实在费劲,决定一定要找个下载电脑上下载b站视频的方法,以前用过硕鼠 ... 
- paloalto防火墙接口使用方法及实例
			1.获取账号相关的唯一API KEY windows:https://x.x.x.x/api/?type=keygen&user=username&password=password ... 
- rancher的微服务运维
			1.安装rancher: rancher官网:https://rancher.com rancher中文官网:https://www.cnrancher.com rancher 2.0 文档:http ... 
- C#多线程--信号量(Semaphore)[z]
			百度百科:Semaphore,是负责协调各个线程, 以保证它们能够正确.合理的使用公共资源.也是操作系统中用于控制进程同步互斥的量. Semaphore常用的方法有两个WaitOne()和Releas ... 
