本文章转载: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. jenkins2 groovy语法

    文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.com/ciandcd   安装: wget https://dl.bin ...

  2. Html 字体大小单位 px em pt

    网页上定义字体大小有常见三种单位,px.em.pt px px是pixel缩写,是基于像素的单位.在浏览网页过程中,屏幕上的文字.图片等会随屏幕的分辨率变化而变化,一个100px宽度大小的图片,在80 ...

  3. 浅谈Entity Framework中的数据加载方式

    如果你还没有接触过或者根本不了解什么是Entity Framework,那么请看这里http://www.entityframeworktutorial.net/EntityFramework-Arc ...

  4. Javascrip的概述

    前言:逻辑思维和思路很重要 ———————————————————————————————————————————————— 一.JavaScript的概述 javascript 具有人机交互性,ja ...

  5. Android模拟器配置

    // 检查连接设备,为了保证运行正常,只能留一个连接设备 adb devices

  6. Atom插件安装及常用插件推荐

    Atom是个不错的文本编辑工具,也该可以改造成IDE用,主要靠插件实现各种扩展功能. 因为网络环境的原因,在线安装不容易成功,一般选择手动安装. 以下是我搜索网络资源后总结的手动安装方法. Atom插 ...

  7. 如何设置缺省路由 route hosts(仅助记) 马连洼 马连洼 马连洼

    linux下添加路由的方法:一:使用 route 命令添加使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法://添加到主机的路由# route add –host 192.16 ...

  8. iOS5可能会删除本地文件储存 - Caches 也不安全

    转自:http://blog.163.com/ray_jun/blog/static/1670536422011101225132544/ 出处:http://superman474.blog.163 ...

  9. PHP之負載均衡下的session共用

    最近忙於開發台灣運動彩券第四版的程式,所以已經很久沒有上來寫東西了,今天隨便寫點東西和大家分享. 首先說一下負載均衡,相信大家都知道負載均衡可以很好地解決網站大流量的問題,負載均衡就是把用戶的請求分發 ...

  10. 使用Git Bash for Windows

    本篇体验Git Bash在Windows操作系统上的用法. 什么是Bash? 是一个Shell环境,Bourne Again Shell的缩写. 安装git for windows → http:// ...