多条件动态LINQ 组合查询

本文章转载: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);

               }

           }

时间: 2024-11-17 16:43:26

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

Linq 组合查询与分页查询

后台: using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class ZS : System.Web.UI.Page { Hashtable ht = new Hashtable(); in

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

多条件组合查询主要用到yii的CDbCriteria,这个类很多oem框架都有,非常好用. 前台查询表单效果是这样的,多个条件组,每个组里放多个input,name为数组.当任何一个复选框被勾选上,发起ajax请求,当然,最顶层的复选框勾上时判断是否有子项,有的话把所有的子项勾选上. 但提交一次请求会向服务端post这样一个表单 其中currentPage是隐藏字段,当分页按钮被点击是这个字段的值会发生变化,并且发起查询请求. 这个表单会提交到如下的action中进行处理 1 <?php 2 3

WebForm之Linq组合查询

组合查询 protected void Button1_Click(object sender, EventArgs e) { //默认查询所有,返回的是Table类型,转换成IQueryAble类型. var query1 = this._Contex.car.AsQueryable(); var query2 = this._Contex.car.AsQueryable(); var query3 = this._Contex.car.AsQueryable(); //进一步判断查询,根据输

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

1.组合查询 <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox></div> <div> 性别:<asp:DropDownList ID="DropDownList1" runat="server"> <asp:ListItem Text="男和女" Value=&

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

学习linq的过程中,做一个表格的条件查询并且分页显示.显示的出的数据需要经过属性拓展来实现将需要给用户看的值显示出来. 后台绑定数据时用的是上下文---- if(!ispostback){ using (DataClassesDataContext con = new DataClassesDataContext()) { List<Users> ulist = con.Users.ToList(); ; Repeater1.DataSource = ulist.Skip(0).Take(c

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

前端代码 后端代码

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

查询的意思就是查找,寻找,指在某一个或几个地方找出自己所要的信息,假如我想搜索一下我自己写的博客,名字叫做初雪之恋,我在百度的搜索框中输入丁国华三个字,会有如何的惊喜等着我? 啊哦,这个信息并非我想要的,于是我再搜,"丁国华 廊坊师范学院  csdn"搜索结果例如以下: 非常显然,这个还不是我想要的结果,我接着搜,"丁国华 廊坊师范学院 csdn 初雪之恋": 在我的理解中,组合查询就是通过条件层层限制,一步一步精确,得到我们想要的答案,在机房收费系统中,有好几处涉

使用Expression Tree构建动态LINQ查询

这篇文章介绍一个有意思的话题,也是经常被人问到的:如何构建动态LINQ查询?所谓动态,主要的意思在于查询的条件可以随机组合,动态添加,而不是固定的写法.这个在很多系统开发过程中是非常有用的. 我这里给的一个解决方案是采用Expression Tree来构建. 其实这个技术很早就有,在.NET Framework 3.5开始引入.之前也有不少同学写过很多不错的理论性文章.我自己当年学习这个,觉得最好的几篇文章是由"装配脑袋"同学写的.[有时间请仔细阅读这些入门指南,做点练习基本就能理解]

Entity Framework多表多条件动态查询

方式一  Linq To Entity形式: /// <summary> /// 查询的数据 /// </summary> /// <param name="order">升序asc(默认)还是降序desc</param> /// <param name="sort">排序字段</param> /// <param name="search">查询条件</p