【发布时间】:2017-04-05 13:21:01
【问题描述】:
我仍在努力了解 LINQ 及其功能。
我正在尝试构建搜索。例如,我想返回匹配搜索字符串(我们称之为搜索词)的结果。例如,在数据库中,我们有如下结果:
ID ItemNum CategoryType
1 2737 Full Length Dresses
2 5353 Full Length Dresses
如果有人搜索“Full Dresses”,我希望能够返回上面的两个结果。但是,使用Contains 不起作用。搜索“全长连衣裙”确实有效。我猜我需要以某种方式将搜索字符串拆分为一个数组,然后使用数组中的每个项目进行搜索,但我不知道该怎么做。
var results = db.Products.Where(p => p.CategoryType.Contains(searchString)).Select(p => p).Distinct();
谢谢。
【问题讨论】:
-
如果
searchString等于"Full Foo"两个项目都应该返回吗? -
这两个项目是什么意思?您的意思是每个项目与两个项目一起?
-
如果搜索字符串是
Full Foo,那么Full是Full Length Dresses的一部分,但Foo不是。应该是结果的两个词的一部分或至少一个 -
理想情况下,我想拥有它,这样它就可以是搜索词的 AND 或 OR。