首页 新闻 会员 周边 捐助

linq to sql 如何做 like 多个关键字?

0
悬赏园豆:10 [已解决问题] 解决于 2012-11-30 17:08

模糊匹配一组关键字  keywords[]

var list = from item in db...........

foreach(var k in keywords)
list = from item in list where item.Name.Contains(k) select item;

这样生成sql之后,永远只有最后一个关键字传进去,而且这样还有问题就是条件之间变成 and 而不是 or

名字已被占用的主页 名字已被占用 | 初学一级 | 园豆:41
提问于:2012-11-30 16:25
< >
分享
最佳答案
0

var list =db.List.Where(w=>keywords.Any(a=>w.Name.Contains(a)));

收获园豆:10
Qlin | 老鸟四级 |园豆:2403 | 2012-11-30 16:33

我查看了linq生成sql的语句,这个方法并不是真正将关键字送到sql语句里面执行,而是在sql返回记录之后在内存中进行过滤,如果记录很多的时候,估计内存会疯掉

名字已被占用 | 园豆:41 (初学一级) | 2012-11-30 18:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册