Linq通过数据库查询每个单词

时间:2017-05-03 08:05:46

标签: c# sql linq

我能告诉你的最好的方法就是举例。

假设用户输入的搜索语句类似于Microsoft Exchange Server'。 所以我的SQL查询如下:

SELECT * FROM tbl_Skills
WHERE Line5 LIKE '%Microsoft%' AND Line5 LIKE '%Exchange%' AND Line5 LIKE '%Server%';

所以它在Linq中看起来如下:

.Where(x => x.Line5.Contains("Microsoft") && x.Line5.Contains("Exchange")&& x.Line5.Contains("Server")).ToList();

问题在于我不知道用户输入了多少单词。那么我将如何使用x个单词来执行该查询。查询必须是AND搜索。

1 个答案:

答案 0 :(得分:2)

Where中,您可以对动态用户词列表使用All

var userWords = new[] { "Microsoft", "Exchange", "Server" };
var selected = tbl_Skills.Where(x => userWords.All(w => x.Line5.Contains(w)));