如何过滤查询结果,其中name包含要搜索的任何单词?

时间:2010-08-31 12:13:59

标签: c# linq-to-sql filter

我正在尝试修改一些返回数据库结果的代码。目前代码如下,并匹配任何具有搜索词等名称的资金。

        var ret = (from funds in queryable
                where
                    SqlMethods.Like(funds.Name, searchTerm)
                select
                    funds);

问题在于它太具体了。如果搜索词是“养老金增长”,那么它只返回名称中有“养老金增长”的结果。我想更改此选项以返回名称中包含“退休金”或“增长”的所有资金(或用户可以包含的搜索字词组合)。

我想要做的是将搜索术语拆分为其组成部分,并将SQL“in”运算符应用于in ('pension', 'growth')之类的查询,以便它返回任何包含某些内容的内容。这些条款,但似乎不是一种选择。

有人可以建议我采取另一种方式吗?感谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试在列表中使用Contains()方法:

var myListOfWords = new List<string>{"pension","growth","42"};
var result = from funds in queryable
             where myListOfWords.Contains(funds.Name)
             select funds;