我想做一个可以将多个变量与单个字符串进行比较的LINQ查询。我见过LINQ for LIKE queries of array elements,这很有帮助,但并不完全。我需要反过来。
我想做的是以下内容:假设我有Company
个Name
和Address
对象。我还有一个字符串keyword
。然后,我想在列表中找到Company
或keyword
中Name
的所有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
条款,第二个给了我......我不知道它做了什么,但它没有给我我想要的东西。
对不起,我对表达式还没有非常深入的了解(还);我希望我能够从头开始编写自己的自定义表达式,但是从头开始我还不能......有人可以帮助我吗?
答案 0 :(得分:6)
不仅仅使用||
运算符的原因?
context.Companies.Where(x => x.Name.Contains(keyword) ||
x.Address.Contains(keyword))
我希望将其翻译成原始SQL。