LINQ:单个谓词中的多个LIKE子句

mat*_*att 1 c# sql linq entity-framework linq-to-sql

我想做一个可以将多个变量与单个字符串进行比较的LINQ查询.我已经看过LINQ for LIKE查询数组元素,它很有用,但并不完全.我需要反过来.

我想做的是以下内容:假设我有Company两个Name和的对象Address.我也有一个字符串keyword.然后,我想找到所有Company的列表具有S keyword在任何他们NameAddress.在SQL中它会......

SELECT * FROM Company
WHERE Name LIKE '%keyword%' OR Address LIKE '%keyword%'
Run Code Online (Sandbox Code Playgroud)

我一直在使用Entity Framework,我尝试了以下内容:context.Companies.Where(x => new string[] { x.Name, x.Address }.Contains(keyword),以及context.Companies.Where(x => new string[] { x.Name, x.Address }.Any(r => r.Contains(keyword)),但都没有成功.第一个给了我一个IN条款,第二个给了我......我不知道它做了什么,但它没有给我我想要的东西.

对不起,我对表达式还没有非常深入的了解(还); 我希望我能够从头开始编写我自己的自定义表达式,但是我还不能抓它 ...有人可以帮助我这个吗?

Jon*_*eet 6

不只是使用||运营商的任何理由?

context.Companies.Where(x => x.Name.Contains(keyword) || 
                             x.Address.Contains(keyword))
Run Code Online (Sandbox Code Playgroud)

我希望将其翻译成您原来的SQL.