数据库表里面有value字段,value varchar类型 第一条数据的value 值是'asdf',第二条数据的value值是'12',第三条数据的value值是'45',我现在传进来的值是value是一个string的数组,里面有'asdf'、'10<=value<60',这样的两个。现在要用查询value='asdf' or(10<=value && value<60) 在Linq里面这样去写,所以得动态的去添加linq条件。。不知道该如何做。。。请大神们帮帮忙。。急需解决方案。。
var list=(
from c in A
where 这里就要把条件加上了
select c
)
求大神帮忙啊。。。。
你搜索下“PredicateBuilder”这个类吧,还有LinqKiq,实现动态的条件,其实是组合表达式树。
我用表达式树做过,由于有些是要做 1< value && value>5这样的时候 就有点问题。。不知道linq里面的let可以不,,这个没有试过。。。还是很感谢你。。。呵呵。。
建议你还是用回 原生态的 ado.net 拼sql。
刚开始老总不让也能够sql写,非得用linq,,,写不出来,老总就让sql写了。。。。后来发现linq里面的let好像可以解决哪个问题。。。呵呵。。。谢了哦。。。
好像这样也可以:
A.c.Where("拼接好的查询条件")。
这样不行哦。。。呵呵 谢谢。。。
你可以使用Lambda 表达式
那样从wcf走效率不高哦。。。呵呵 还是谢谢。。
if (!string.IsNullOrEmpty(pbName)) query = query.Where(r => r.Name.Contains(pbName)); if (!string.IsNullOrEmpty(createName)) query = query.Where(r => r.CreateName.Contains(createName)); if (pbType != 0) query = query.Where(r => r.PBTypeID == pbType);
这样算不
也这样做过,不行。。。。还是谢了哦。。呵呵。。