本文章转载:http://www.cnblogs.com/wangiqngpei557/archive/2013/02/05/2893096.html

参考:http://dotnet.9sssd.com/entfwk/art/960

http://www.cnblogs.com/killuakun/archive/2008/08/03/1259389.html

http://www.cnblogs.com/snowdream/archive/2008/07/18/1246308.html

以往我们都是通过判断的方式来拼接查询的SQL字符串,但是现在我们面对是强类型的LINQ查询,是否可以很方便的进行类似查询。

eg:

string _UserID = string.Empty;
           _UserID = "E351D301-F64B-412C-B9EF-573F41235AF2";
 
           string _UserName = string.Empty;
           _UserName = "admin";
 
           string _employyName = string.Empty;
           _employyName = "测试1";
 
           using (var xj = new XJGasBottles_testDataContext())
           {
               //Linq写法
               var usersLinq = from us in xj.Users
                               where (string.IsNullOrEmpty(_UserID) || us.UserID.ToString() == _UserID)
                                      && (string.IsNullOrEmpty(_UserName) || us.UserName == _UserName)
                                      || (us.EmpName == _employyName)
                               //where string.IsNullOrEmpty(_UserID) || us.UserID.ToString()==_UserID
                               //where string.IsNullOrEmpty(_UserName) || us.UserName==_UserName
                               select us;
               foreach (var item in usersLinq)
               {
                   Console.WriteLine("Linq:");
                   Console.WriteLine(item.UserID + "_" + item.UserName);
 
               }
 
               //Lamda写法
               var usersLamda = xj.Users.Where(s => (string.IsNullOrEmpty(_UserID) || s.UserID.ToString() == _UserID) &&
                                               (string.IsNullOrEmpty(_UserName) || s.UserName == _UserName) ||
                                               (s.EmpName==_employyName)
                                         )
                                   .Select(s => s);
 
               foreach (var item in usersLamda)
               {
                   Console.WriteLine("Lamda:");
                   Console.WriteLine(item.UserID + "_" + item.UserName);
 
               }
 
           }

多条件动态LINQ 组合查询的更多相关文章

  1. MyDAL - .Where() 之 .WhereSegment 根据条件 动态设置 Select查询条件 使用

    索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...

  2. SqlProfilter监控指定数据库数据表——监控linq组合查询生成的sql

    1.例子 实际测试环境中往往很多测试都在调用数据库,那么如何使用SqlProfilter监控筛选到自己想要监看的数据库对应的表有关linq生成的sql时候就需要做如下设置了 ........... u ...

  3. yii下多条件多表组合查询以及自写ajax分页

    多条件组合查询主要用到yii的CDbCriteria,这个类很多oem框架都有,非常好用. 前台表单 前台查询表单效果是这样的,多个条件组,每个组里放多个input,name为数组.当任何一个复选框被 ...

  4. WebForm之Linq组合查询

    组合查询 protected void Button1_Click(object sender, EventArgs e) { //默认查询所有,返回的是Table类型,转换成IQueryAble类型 ...

  5. Linq组合查询与分页组合查询结合

    1.组合查询 <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox& ...

  6. linq组合查询时属性扩展问题

    学习linq的过程中,做一个表格的条件查询并且分页显示.显示的出的数据需要经过属性拓展来实现将需要给用户看的值显示出来. 后台绑定数据时用的是上下文---- if(!ispostback){ usin ...

  7. LinQ 组合查询与分页

    1.以开头查 public List<Car> Select1(string a){ return con.Car.Where(r => r.Name.StartsWith(a)). ...

  8. LINQ 组合查询 和分页查询的使用

    前端代码 <%@ Page Language="C#" AutoEventWireup="true" Debug="true" Cod ...

  9. VB.NET版机房收费系统---组合查询

    查询的意思就是查找,寻找,指在某一个或几个地方找出自己所要的信息,假如我想搜索一下我自己写的博客,名字叫做初雪之恋,我在百度的搜索框中输入丁国华三个字,会有怎样的惊喜等着我? 啊哦,这个信息并不是我想 ...

随机推荐

  1. [WinAPI] API 9 [文件的删除、复制和移动功能]

    Windows系统为文件的删除.复制.重命名或移动文件提供了相应的API函数.删除文件使用DeleteFile函数:复制文件使用CopyFile函数:重命名文件和移动文件实际是一个操作,使用MoveF ...

  2. SSRS 迁移

    一.数据库备份 备份源数据库:ReportServer和ReportServerTempDB (注意是全备份) 二.数据库还原 还原之前先停掉SSRS 还原至目标数据库:ReportServer和Re ...

  3. DOS与Linux的换行字符

    一.vim打开window下的文件出现 ^M 首先理解,dos(windows)下建立的文件的换行是  ^M\$ (CRLF) ,而在Linux下面,仅仅是以 \$ (LF) 来做断行符号: (^M\ ...

  4. 云端持续集成——AppVeyor拥抱GitHub

    想着你正在做一个网站 终于大功告成了,提交了代码后,你按下了开发环境的Build菜单,一杯咖啡后,Build Succeed,然后连接服务器,开始部署 当你乐滋滋的享受着你的开发成果时,突然发现了一个 ...

  5. Java程序员的日常—— 《编程思想》关于类的使用常识

    Java虽然利用JVM,让程序员可以放心大胆的使用,可是仍然会出现内存泄露等问题.世上没有绝对的银弹,因此也不能完全把所有的任务都交给JVM,了解Java中的初始化与垃圾回收还是必不可少的知识. 关于 ...

  6. Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践

    Atitit. js mvc 总结(2)----angular  跟 Knockout o99 最佳实践 1. 框架 angular 跟Knockout 1 2. 2. 简单的列表绑定:Knockou ...

  7. atitit.提升备份文件复制速度(4) ---数据挖掘 获取回收站文件列表

    atitit.) ---数据挖掘 获取回收站文件列表 1. 放入回收站的原理and 1 2. info2文件文件结构 1 3. 获得文件列表2个法: 正则表达式or解析 1 4. 路径正则表达式[a- ...

  8. PLSQL查询表是否被锁定(转)

    PLSQL查询表是否被锁定(转) http://blog.sina.com.cn/s/blog_70717ff00100qb85.html (2011-05-08 13:13:06) 转载▼ 标签: ...

  9. 使用Maven编译项目遇到——“maven编码gbk的不可映射字符”解决办法 ——转载

    一.问题描述 今天在MyEclipse中使用Maven编译项目源代码时,结果如下了如下的错误

  10. Java插件开发-取插件下的某个文件

    //找到插件所在处 Bundle bundle = Activator.getDefault().getBundle(); //根据插件转义成URL路径 URL url = FileLocator.t ...