我想获得Product实体的集合,其中product.Description属性包含字符串数组中的任何单词.
它看起来像这样(结果将是任何在描述文本中有"mustard OR"泡菜"OR"relish"的产品):
Dim products As List(Of ProductEntity) = New ProductRepository().AllProducts
Dim search As String() = {"mustard", "pickles", "relish"}
Dim result = From p In products _
Where p.Description.Contains(search) _
Select p
Return result.ToList
Run Code Online (Sandbox Code Playgroud)
我已经看过这个类似的问题,但无法让它发挥作用.
我正在尝试搜索数据库以查看字符串是否包含搜索项列表的元素.
var searchTerms = new List<string> { "car", "232" };
var result = context.Data.Where(data => data.Name.Contains(searchTerms) ||
data.Code.Contains(searchTerms));
Run Code Online (Sandbox Code Playgroud)
如果searchTerms是一个字符串,这将有效,但我一直试图让它与字符串列表一起使用.
基本上我需要SQL来说
SELECT * FROM Data
WHERE Name LIKE '%car%'
OR Name LIKE '%232%'
OR Code LIKE '%car%'
OR Code LIKE '%232%'
Run Code Online (Sandbox Code Playgroud)
列表中包含任何列表的linq似乎是我能找到的关闭情况.
Where(data => searchTerms.Contains(data.Name) || searchTerms.Contains(data.Code) 只会将完全匹配带回搜索字词列表.
我也尝试在Entity Framework中搜索多个关键字搜索,并且已经用尽了这些努力.有没有办法实现我的目标?