模糊匹配一组关键字 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
var list =db.List.Where(w=>keywords.Any(a=>w.Name.Contains(a)));
我查看了linq生成sql的语句,这个方法并不是真正将关键字送到sql语句里面执行,而是在sql返回记录之后在内存中进行过滤,如果记录很多的时候,估计内存会疯掉