如何动态构建 linqOR查询,其中多个列之一可以匹配搜索字符串?这在 SQL 中并不难做到。例如:
SELECT ID, Title, Description, Comments, CreatedBy, CreatedOn, UpdatedBy, UpdatedOn
FROM Category
WHERE (Title LIKE '%Supplier%')
OR (Description LIKE '%Supplier%')
Run Code Online (Sandbox Code Playgroud)
有时我需要添加OR (Comments LIKE '%Supplier%')或省略OR (Title LIKE '%Supplier%'),这就是我想动态构建它的原因。
我不认为这是一个重复的问题,因为潜在的重复问题并不是以可以使用 Stackoverflow 搜索功能找到的方式提出的。
您只需像在 C# 中的其他地方一样使用 or 运算符即可。下面的代码片段基本上应该可以满足您的要求。字符串文字可以是局部变量。
MyObjects.Where(x => x.Someprop == "my string" || x.SomeOtherprop == "my string").Select(...)
Run Code Online (Sandbox Code Playgroud)
对于你的例子,你实际上想要的东西更像
Where(x => x.Comments.Contains("Supplier") || x.Description.Contains("Supplier"))
Run Code Online (Sandbox Code Playgroud)
请注意,那些 SQL 通配符等效的 C# 方法将是:包含、开始于和结束于。您还可以使用 RegEx 来匹配更复杂的模式。
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |