1

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

我想做的是以下几点:假设我有一个Company对象同时具有Nameand Address。我也有一个字符串keyword。然后,我想Company在一个列表中找到所有 s 中keywordNameor Address。在 SQL 中,它将是...

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

我一直在使用实体框架,并且尝试了以下方法: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子句,第二个......我不知道它做了什么,但它没有给我我想要的东西。

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

4

1 回答 1

6

有什么理由不只是使用||运营商?

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

我希望这会被翻译成你原来的 SQL。

于 2012-11-28T07:17:48.437 回答