关于LinkQ的动态查询

问题描述

用Sql语句的时候可以组合动态查询字符串,看了网上的一些文章用LinQ的时候,可以动态组合Lamda表达式,我写了一个方法publicstaticExpression<Func<TEntity,bool>>getExpression<TEntity>(thisstringfieldName,stringfieldValue,CompareOperateoperate)whereTEntity:class{ParameterExpressionparam=Expression.Parameter(typeof(TEntity),"c");Expressionleft=Expression.Property(param,typeof(TEntity).GetProperty(fieldName));Expressionright=Expression.Constant(fieldValue);Expressionfilter=null;switch(operate){caseCompareOperate.Equal:filter=Expression.Equal(left,right);break;caseCompareOperate.GreaterThan:filter=Expression.GreaterThan(left,right);break;caseCompareOperate.LessThan:filter=Expression.LessThan(left,right);break;caseCompareOperate.LessThanOrEqual:filter=Expression.LessThanOrEqual(left,right);break;caseCompareOperate.GreaterThanOrEqual:filter=Expression.GreaterThanOrEqual(left,right);break;caseCompareOperate.NotEqual:filter=Expression.NotEqual(left,right);break;default:filter=Expression.Equal(left,right);break;}Expression<Func<TEntity,bool>>pred=Expression.Lambda<Func<TEntity,bool>>(filter,param);returnpred;}但是其中还有一些情况没有包括,像Like的这种情况,不知道各位在动态查询这块是怎么处理的,大家一起探讨一下,顶者有分

解决方案

解决方案二:
sf
解决方案三:

解决方案四:
顶下
解决方案五:
Like是方法调用。
解决方案六:
我喜欢用Lamda。不知道你写这段是什么用。like:在Lamda里直接用db.table1.Where(a=>a.field1.IndexOf("asd")>-1)关于动态:varaa=db.table1.Where(a=>a.field1.IndexOf("asd")>-1);if(true)aa=aa.Where(a=>a.field2=="qq")elseaa=aa.Where(a=>a.field2=="ww")当然if里的左边aa可以用别的变量,如果你数据类型变了
解决方案七:
老外发布的LINQ示例中,不就写了个类帮助你动态写查询语句的吗?其实可以直接用他那个类的,据说是微软的大牛写的,可以看看!可以用Lamda写,但我感觉不是太好!

时间: 2024-09-14 20:48:35

关于LinkQ的动态查询的相关文章

不能用SQL语句-如何用JPA动态查询查询复杂数据

问题描述 如何用JPA动态查询查询复杂数据 我想问的就是怎么用JPA动态查询查询复杂数据 如SELECT IFNULL(sum(i.INVENTORY_AMOUNT)0) FROM INVENTORY i WHERE i.VEN_ID = ?1 and i.ITEM_MYID = ?2 and i.DID is null. 解决方案 http://leobluewing.iteye.com/blog/1969621 解决方案二: 数据查询(3)-复杂查询jpa动态查询杂记JPA中的动态查询与指定

XML卷之实战锦囊(2)——动态查询

查询功能是我们在网站上见过的最普遍也是最常用的一个功能模块了.以往的信息查询都是连接到数据库的,每一次点击都必须要后台数据库的支持.然而很多情况下用户往往只针对某一部分的数据进行操作,这样不但服务器的负担加重,而且严重的影响用户浏览的速度. 针对这种情况我们需要将用户需要的某一部分数据以XML的方式传递到客户端,用户对这些数据可以很方便的进行操作.既方便了用户,又减轻了服务器数据库的负担.何乐而不为呢!而且这项功能可以通用到其他众多模块,因此添加了这个动态查询功能. 材料: XML卷之动态查询

XML卷之实战锦囊(2):动态查询

xml|动态 动机: 查询功能是我们在网站上见过的最普遍也是最常用的一个功能模块了.以往的信息查询都是连接到数据库的,每一次点击都必须要后台数据库的支持.然而很多情况下用户往往只针对某一部分的数据进行操作,这样不但服务器的负担加重,而且严重的影响用户浏览的速度. 针对这种情况我们需要将用户需要的某一部分数据以XML的方式传递到客户端,用户对这些数据可以很方便的进行操作.既方便了用户,又减轻了服务器数据库的负担.何乐而不为呢!而且这项功能可以通用到其他众多模块,因此添加了这个动态查询功能. 材料:

ASP的多条件动态查询

动态|条件 当用ASP与SQL Server数据库打交道时,查询语句是必不可少的.SQL Server数据库本身提供了丰富的查询语句,但是如何在ASP中实现对SQL Server数据库的多条件动态查询呢?笔者在用ASP开发一个基于SQL Server的网站时,较好地解决了这一问题,本文介绍其中的实现方法. 数据库的定义 在SQL Server中定义一个数据库,名称为"comm_server".在该数据库中定义一个表,表名为"operator",包含如下表所示字段 (

Ruby on rails开发从头来(四十八)- ActiveRecord基础(动态查询)

数据库上最常运行的查询莫过于根据指定条件返回符合的结果集,查询可能是返回所有名字为'dave'的订单,或者是某个博客上所有标题含Rails的post,在很多其他的框架和程序设计语言中,你需要创建sql来执行查询,Active Record利用了ruby语言所包含的动态能力来做这些事. 例如,我们的Order Model包含了诸如name,email,address这样的属性,我们可以使用这些名字对应的find方法来查询,例如: order = Order.find_by_name("Dave T

LINQ那些事儿(5)- 动态查询

所谓动态查询,是指查询条件或查询值都是在运行时才能确定的查询.这就意味着我们不能hard-code定义查询变量(query variable),只有根据查询时传递的条件来拼凑.下面我们看看几组不同条件组合的查询. 1) 用户输入查询条件:City为"London"且ContactName包含"Thomas" 01 public IQueryable<Customer> GetCustomers(string city, string contactNam

LINQ to SQL语句(23)之动态查询

动态查询 有这样一个场景:应用程序可能会提供一个用户界面,用 户可以使用该用户界面指定一个或多个谓词来筛选数据.这种情况在编译时不知 道查询的细节,动态查询将十分有用. 在LINQ中,Lambda表达式是许多 标准查询运算符的基础,编译器创建lambda表达式以捕获基础查询方法(例如 Where.Select.Order By.Take While 以及其他方法)中定义的计算.表达式 目录树用于针对数据源的结构化查询,这些数据源实现IQueryable<T>. 例如,LINQ to SQL 提

LINQ体验(17)——LINQ to SQL语句之动态查询

高级特性 本文介绍LINQ的高级特性,其包括大家都关心的动态查询的用法 ,另外简单提下ID标识这个知识. 动态查询 有这样一个场景:应用程 序可能会提供一个用户界面,用户可以使用该用户界面指定一个或多个谓词来筛 选数据.这种情况在编译时不知道查询的细节,动态查询将十分有用. 在LINQ中,Lambda表达式是许多标准查询运算符的基础,编译器创建lambda表达 式以捕获基础查询方法(例如 Where.Select.Order By.Take While 以及其 他方法)中定义的计算.表达式目录树

如何在oracle存储过程中进行简单动态查询

在存储过程中做简单动态查询代码 ,例如: CREATE OR REPLACE procedure ZXM_SB_GZ_GET (p_table in varchar2, p_name in varchar2, p_value in varchar2, outpara out lntxdba.zxm_pag_cs_power.c_type ) as begin declare wherevalue varchar2(200): begin wherevalue:=select * from ||p