在 Entity Framework Core 中使用包含通配符

Bee*_*ice 5 c# entity-framework-core .net-core

读完之后问题如何在Linq中做SQL Like %?当我需要在字符串中使用通配符时,我仍然有疑问,如下所示:

%cro%ft%
Run Code Online (Sandbox Code Playgroud)

并得到如下结果:

  • 微软
  • 微软公司
  • 杂技软件

出于某种原因,简单的包含不起作用。

更新:

使用 .contains(string1) && .contains(string2),给我这个 sql 命令:

SELECT s."Nome", s."Id", s."Cpf"
  FROM "Pacientes" AS s
 WHERE ((STRPOS(s."Nome", 'cro') > 0) AND (STRPOS(s."Nome", 'ft') > 0))
   AND (s."ClinicaId" = @__clinicId_0)
 ORDER BY s."Nome"
Run Code Online (Sandbox Code Playgroud)

而不是像这样一个干净的sql:

SELECT s."Nome", s."Id", s."Cpf"
  FROM "Pacientes" AS s
 WHERE (s.Nome like '%cro%ft%')
   AND (s."ClinicaId" = @__clinicId_0)
 ORDER BY s."Nome"
Run Code Online (Sandbox Code Playgroud)

我在生产中的代码是:

result = result.Where(s => s.Nome.ToLower().Contains(name.ToLower()));
Run Code Online (Sandbox Code Playgroud)