本文章转载: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. Dynamic CRM 2013学习笔记(三十七)自定义审批流7 - 初始化(整套审批流下载、安装)

    前面介绍了自定义审批流的配置.使用,这篇介绍下如何进行初始化. 一. 下载 从下面的地址下载整个审批流: http://yunpan.cn/cZ5Rdx5HCt3VF 下载完后,一共有三块内容: 二. ...

  2. Centos6.5 下安装PostgreSQL9.4数据库

    一.安装PostgreSQL源 CentOS 6.x 32bit rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-6-i386/pgdg-cent ...

  3. [MSSQL]如何高效查询表的总记录数

    如何高效查询表的总记录数?[总结-整理-马克] 首先想到的自然是在表主键上应用COUNT函数来查询了,这个是目前使用最多的方法,没有之一 ) ROWS FROM product 这里再给出一些其它方法 ...

  4. 团队项目—编写项目的Spec

    一.Spec的目标 spec又叫Specification, 有两种.第一种是functional spec, 软件功能说明书, 主要用来说明软件的外部功能, 和用户的交互情况.第二种technica ...

  5. Linux 进程间通信(二) 管道

    Linux 进程间通信-管道 进程是一个独立的资源分配单位,不同进程之间的资源是相互独立的,没有关联,不能在一个进程中直接访问另一个进程中的资源.但是,进程不是孤立的,不同的进程之间需要信息的交换以及 ...

  6. 为什么不能把委托(delegate)放在一个接口(interface)当中?

    stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't g ...

  7. spring-mvc.xml报错cvc-complex-type.2.4.c

    添加 <!-- 定义请求处理映射HandlerMapping --> <bean id = "handlerMapping" class = "org. ...

  8. centos安装firefox flash插件

    centos下的firefox flash插件默认不是最新版的,安装过程如下: 将安装地址添加到repolist中 sudo yum -y install http://linuxdownload.a ...

  9. NodeJS-图片上传(Express)

    文件上传是每个网站不可避免的,最近需要做些上传图片的功能,主要解决两个问题,一个是文件上传样式和服务端路径保存,功能很简单,做起来倒是没那么简单,先从最简单的页面的上传页面的样式开始. 页面样式 Ht ...

  10. jquery读取XML 生成页面文件

    $.get("../../js/data.xml", function (xml) { $(xml).find("local").each(function ( ...