Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Linq to Entities (EF 4.1):Como fazer um SQL LIKE com um curinga no meio ( '%term%term%')?


Acredito que você poderia usar SqlFunctions. PatIndex :
dt.Table.Where(p => SqlFunctions.PatIndex(term, p.fieldname) > 0);

SqlFunctions.PatIndex se comporta da mesma forma que o SQL LIKE operador. Ele suporta todos os caracteres curinga padrão, incluindo:
  • % Qualquer string de zero ou mais caracteres.
  • _ (sublinhado) Qualquer caractere único.
  • [ ] Qualquer caractere único dentro do intervalo especificado ([a-f]) ou conjunto ([abcdef]).
  • [^] Qualquer caractere único que não esteja dentro do intervalo especificado ([^a-f]) ou conjunto ([^abcdef]).

SqlFunctions.PatIndex geralmente está disponível quando o SqlMethods.Like não está disponível (inclusive em controladores MVC)