Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Linq to Entities (EF 4.1):Comment faire un SQL LIKE avec un caractère générique au milieu ( '%term%term%') ?

Je pense que vous pouvez utiliser SqlFunctions. PatIndex :

dt.Table.Where(p => SqlFunctions.PatIndex(term, p.fieldname) > 0);

SqlFunctions.PatIndex se comporte de la même manière que SQL LIKE opérateur. Il prend en charge tous les caractères génériques standard, notamment :

  • % Toute chaîne de zéro caractère ou plus.
  • _ (trait de soulignement) N'importe quel caractère unique.
  • [ ] Tout caractère unique dans la plage spécifiée ([a-f]) ou ensemble ([abcdef]).
  • [^] Tout caractère unique ne se trouvant pas dans la plage spécifiée ([^a-f]) ou définie ([^abcdef]).

SqlFunctions.PatIndex est souvent disponible lorsque SqlMethods.Like n'est pas disponible (y compris dans les contrôleurs MVC)