首页 新闻 搜索 专区 学院

Linq怎么动态添加条件

0
[已解决问题] 解决于 2013-06-13 10:24

数据库表里面有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

     )

求大神帮忙啊。。。。

Tadpole的主页 Tadpole | 菜鸟二级 | 园豆:207
提问于:2013-06-07 23:09
< >
分享
最佳答案
0

你搜索下“PredicateBuilder”这个类吧,还有LinqKiq,实现动态的条件,其实是组合表达式树。

奖励园豆:5
幻天芒 | 高人七级 |园豆:36672 | 2013-06-08 01:36

我用表达式树做过,由于有些是要做 1< value && value>5这样的时候 就有点问题。。不知道linq里面的let可以不,,这个没有试过。。。还是很感谢你。。。呵呵。。

Tadpole | 园豆:207 (菜鸟二级) | 2013-06-13 10:13
其他回答(4)
0

建议你还是用回 原生态的 ado.net 拼sql。

geass.. | 园豆:1771 (小虾三级) | 2013-06-08 06:57

刚开始老总不让也能够sql写,非得用linq,,,写不出来,老总就让sql写了。。。。后来发现linq里面的let好像可以解决哪个问题。。。呵呵。。。谢了哦。。。

支持(0) 反对(0) Tadpole | 园豆:207 (菜鸟二级) | 2013-06-13 10:14
0

好像这样也可以:

 

A.c.Where("拼接好的查询条件")。

数据酷软件 | 园豆:130 (初学一级) | 2013-06-08 09:25

这样不行哦。。。呵呵  谢谢。。。

支持(0) 反对(0) Tadpole | 园豆:207 (菜鸟二级) | 2013-06-13 10:14
0

你可以使用Lambda 表达式

冉冉有终 | 园豆:215 (菜鸟二级) | 2013-06-08 10:41

那样从wcf走效率不高哦。。。呵呵  还是谢谢。。

支持(0) 反对(0) Tadpole | 园豆:207 (菜鸟二级) | 2013-06-13 10:17
0
 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);

这样算不

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-06-08 13:44

也这样做过,不行。。。。还是谢了哦。。呵呵。。

支持(0) 反对(0) Tadpole | 园豆:207 (菜鸟二级) | 2013-06-13 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册