Linq动态查询与模糊查询
IList<Department> mDepartmentLst = new List<Department>();IList<Employee> mEmployeeLst = new List<Employee>();mDepartmentLst.Add(new Department() { Id = 1, DeptNo = "001", DeptName = "开发部", IsBusiness = false });mDepartmentLst.Add(new Department() { Id = 2, DeptNo = "002", DeptName = "B2C 商务部", IsBusiness = true });mDepartmentLst.Add(new Department() { Id = 3, DeptNo = "003", DeptName = "B2B 商务部", IsBusiness = true });mDepartmentLst.Add(new Department() { Id = 4, DeptNo = "004", DeptName = "人事部", IsBusiness = false });mEmployeeLst.Add(new Employee() { Id = 1, DeptId = 1, EmpNo = "NO001", EmpName = "xushengtao" });mEmployeeLst.Add(new Employee() { Id = 1, DeptId = 1, EmpNo = "NO002", EmpName = "fankaijian" });mEmployeeLst.Add(new Employee() { Id = 1, DeptId = 4, EmpNo = "NO003", EmpName = "wangguoqin" });int mPageSize = 2;int mTotalCount = 0;Expression mWhereExpression; // Filter clause (查询语句)// Get current request pagestring mCurPage = "1"; ;// Linq param which represent the search object (查询对象代替符)ParameterExpression mLinqParam = Expression.Parameter(typeof(Department), "p"); //begin 处理“IsBusiness=true”//创建一个表示访问属性的 MemberExpressionMemberExpression memberExpression = Expression.Property(mLinqParam, typeof(Department).GetProperty("IsBusiness"));ConstantExpression constantExpression = Expression.Constant(false);mWhereExpression = Expression.Equal(memberExpression, constantExpression);//endstring mDeptName = "人事部";if (!String.IsNullOrEmpty(mDeptName)){mWhereExpression = Expression.And(mWhereExpression, Expression.Call(Expression.Property(mLinqParam,typeof(Department).GetProperty("DeptName")), typeof(String).GetMethod("Contains"),new Expression[] { Expression.Constant(mDeptName) }));}var mLambdaWhere = (Expression<Func<Department, bool>>)Expression.Lambda<Func<Department, bool>>(mWhereExpression,new ParameterExpression[] { mLinqParam });Func<Department, String> mLambdaOrder = p => p.DeptNo;mTotalCount = mDepartmentLst.AsQueryable().Where(mLambdaWhere).Count();var list = from o in mDepartmentLst.AsQueryable().Where(mLambdaWhere).OrderBy(mLambdaOrder).Skip((int.Parse(mCurPage) - 1) * mPageSize).Take(mPageSize)join c in mEmployeeLst on o.Id equals c.DeptIdselect new{o.DeptNo,o.DeptName,o.IsBusiness,c.DeptId,c.EmpNo,c.EmpName};
转载于:https://www.cnblogs.com/xust/articles/2734064.html
Linq动态查询与模糊查询相关推荐
- Springboot 整合ElasticSearch 常用的插入查询,模糊查询,范围查询
前言 本来该篇教程就应该写到 Springboot 整合 ElasticSearch 入门教学必看 https://blog.csdn.net/qq_35387940/article/details/ ...
- mysql模糊 精准查询_Mysql 精准查询与模糊查询【原创】
有一次做项目,没有搞清楚精准查询和模糊查询的区别,写的代码不能用,存在bug,后来特地去学习了这两个查询语句 个人理解:精准查询就是查询条件和符合查询条件的一字不差,比如,我要搜索姓名为ada这个关键 ...
- MySQL基础(八):模糊查询的SQL语句、where条件查询、比较运算符查询、逻辑运算符查询、模糊查询、范围查询、空判断查询
文章目录 where条件查询 1. where条件查询的介绍 2. 比较运算符查询 3. 逻辑运算符查询 4. 模糊查询 5. 范围查询 6. 空判断查询 7. 小结 where条件查询 学习目标 能 ...
- c3p0 参数 模糊查询_mybatis之动态sql,模糊查询,结果集处理,mybatis分页及特殊字符处理...
目标及项目目录结构 目标 1.mybatis动态sql 2.模糊查询 3.查询返回结果集的处理 4.分页查询 5.特殊字符处理 项目的目录结构 1.mybatis动态sql If.trim.forea ...
- MyBatis——占位符,转义字符,多元素查询(模糊查询),动态sql(多条件中多查询,多条件中单查询)
占位符:${},#{} ${}:充当占位符时,无法防止sql注入,纯纯的外面给啥,他就往上放啥 #{}:充当-,可以防止sql注入 实体类: package com.itjh.pojo;public ...
- 基于Mybatis的sql动态查询和模糊查询的实现
有时候,我们在进行查询的时候会涉及到条件查询,即查询的条件可以是某个值,也可以为空.就像我们在淘宝上购物时,有个输入框,在里面你输入值后,就会有相应的结果.什么都不输入的时候,也会有商品显示出来.模糊 ...
- SpringBoot整合Mybatis之各种查询、模糊查询、批量删除、动态表名
一.普通查询 1. 若查询出的数据只有一条 a>可以通过实体类对象接收 <!-- Dish getDishByName(@Param("name") String na ...
- jpa基于ExampleMatcher,Example实现动态筛选,模糊查询,分页,排序,时间范围筛选
简介: 素材来源于网络,加入个人理解进行组装,减少后台代码量(偷懒),在代码配置化得路上远行 满足条件: 基础条件赛选(模糊查询) 范围筛选(此文针对于时间,其他类似) 基础分页排序等 优点:代码一次 ...
- oracle千万级数据模糊查询,oracle模糊查询效率拔高
分2种思路考虑模糊查询的效率的提高.--注:专注处理百万级数据量,小量数据就算了 第一种:把数据存到业务内存中,通过查询内存提高效率.(要求:硬件内存要高) 1,如果想实现内存动态数据,可以监控表数据 ...
- mybaits的模糊查询_mybatis模糊查询防止SQL注入(很详细)
SQL注入,大家都不陌生,是一种常见的攻击方式.攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如"or '1'='1'"这样的语句),有可能入侵参数检验不足的应用程序 ...
最新文章
- mysql 查询执行过的sql_查看mysql已经执行过的sql语句
- Java 常见异常种类
- centos 7 包管理工具 snap 安装部署
- POJ - 2018 二分+单调子段和
- css摇曳的_HTML5+CSS3实现树被风吹动摇晃
- python3的idle打不开_python3.4idle为什么打不开
- java怎么在哪写代码_java把这段代码不写死问题出现在哪儿
- (97)FPGA时序违规案例(二)
- 《变革中的思索》连载九:放飞的爱;母亲和我
- 了解Binder机制原理和底层实现
- 20155330 第十一周课堂练习(20170503)
- Linux学习(一)——常用命令
- 微信公众开发java教程_[Java教程]微信公众平台开发(一)
- Xiaojie雷达之路---车载雷达信号处理流程
- c语言致命错误无法打开网页,电脑中IE浏览器显示异常或无法打开网页崩溃的解决方法...
- 斯特陵往事(转自清韵论坛 冯·迪特里施专栏)
- 牛客多校第十场 Han Xin and His Troops(扩展中国剩余)
- msysGit与TortoiseGit使用入门
- 层层递进!MySQL性能优化步骤演进,一顿饭的时间我就会了
- 中小学花都区计算机作品比赛,2010年广州市小学电脑绘画、小报制作比赛简报.doc...