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

时间:2012-11-28 07:16:14

标签: c# sql linq entity-framework linq-to-sql

我想做一个可以将多个变量与单个字符串进行比较的LINQ查询。我见过LINQ for LIKE queries of array elements,这很有帮助,但并不完全。我需要反过来。

我想做的是以下内容:假设我有CompanyNameAddress对象。我还有一个字符串keyword。然后,我想在列表中找到CompanykeywordName的所有Address。在SQL中它将是......

SELECT * FROM Company
WHERE Name LIKE '%keyword%' OR Address LIKE '%keyword%'

我一直在使用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条款,第二个给了我......我不知道它做了什么,但它没有给我我想要的东西。

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

1 个答案:

答案 0 :(得分:6)

不仅仅使用||运算符的原因?

context.Companies.Where(x => x.Name.Contains(keyword) || 
                             x.Address.Contains(keyword))

我希望将其翻译成原始SQL。