Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ:单个谓词中的多个LIKE子句_C#_Sql_Linq_Entity Framework_Linq To Sql - Fatal编程技术网

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

C# LINQ:单个谓词中的多个LIKE子句,c#,sql,linq,entity-framework,linq-to-sql,C#,Sql,Linq,Entity Framework,Linq To Sql,我想做一个LINQ查询,它可以将多个变量与单个字符串进行比较。我看到了,这很有帮助,但不完全是。我需要相反的 我想做的是:假设我有一个名字和地址都是Company对象。我还有一个字符串关键字。然后,我想在一个列表中找到所有在名称或地址中有关键字的公司。在SQL中,它将是 SELECT * FROM Company WHERE Name LIKE '%keyword%' OR Address LIKE '%keyword%' 我一直在使用实体框架,并尝试了以下方法:context.company

我想做一个LINQ查询,它可以将多个变量与单个字符串进行比较。我看到了,这很有帮助,但不完全是。我需要相反的

我想做的是:假设我有一个名字和地址都是Company对象。我还有一个字符串关键字。然后,我想在一个列表中找到所有在名称或地址中有关键字的公司。在SQL中,它将是

SELECT * FROM Company
WHERE Name LIKE '%keyword%' OR Address LIKE '%keyword%'
我一直在使用实体框架,并尝试了以下方法:context.companys.Wherex=>newstring[]{x.Name,x.Address}.Containskeyword,以及context.companys.Wherex=>newstring[]{x.Name,x.Address}.Anyr=>r.Containskeyword,但都没有成功。第一个给我一个IN子句,第二个。。。我不知道它能做什么,但它不能给我想要的


很抱歉,我对表达的理解还不够深入;我希望我能够从头开始编写自己的自定义表达式,但是从头开始我还不能。。。有人能帮我吗?

有什么理由不只是使用| |运算符吗

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

我希望能将其转换为原始SQL。

有没有理由不使用| |运算符

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

我希望这会被翻译成您的原始SQL。

只是为了方便和可读性。。。我不想要一个完整的| |@matt列表:好吧,有很多方法可以通过编程方式创建这样的表达式,请看-但是您给出的案例只有两个值,所以我绝对只需要在那里使用| |。即使您给出的在中使用名称和地址创建数组的版本有效,我想说它的可读性远不如我回答中的代码。如果你问一个有更多属性的场景——或者属性数量可变的场景——我会给出不同的答案。啊。。。我懂了。我写这篇文章只是为了举例说明,我的对象不止有两个属性,它将是一个系统范围的实现,因为我这样做是为了搜索。我以前看过那个网站,也看过.Or之类的东西,但我仍然不知道如何使用它来编写可插入到我当前LINQ语句中的内容。我不是在要求硬代码,但我有点不知道如何开始使用这些表达式。。。有点像重新学习C。只是为了方便和可读性的缘故。。。我不想要一个完整的| |@matt列表:好吧,有很多方法可以通过编程方式创建这样的表达式,请看-但是您给出的案例只有两个值,所以我绝对只需要在那里使用| |。即使您给出的在中使用名称和地址创建数组的版本有效,我想说它的可读性远不如我回答中的代码。如果你问一个有更多属性的场景——或者属性数量可变的场景——我会给出不同的答案。啊。。。我懂了。我写这篇文章只是为了举例说明,我的对象不止有两个属性,它将是一个系统范围的实现,因为我这样做是为了搜索。我以前看过那个网站,也看过.Or之类的东西,但我仍然不知道如何使用它来编写可插入到我当前LINQ语句中的内容。我不是在要求硬代码,但我有点不知道如何开始使用这些表达式。。。有点想重新学习C。