Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Linq to Entities (EF 4.1):come eseguire un LIKE SQL con un carattere jolly nel mezzo ( '%term%term%')?

Credo che potresti usare SqlFunctions. Indice Pat :

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

SqlFunctions.PatIndex si comporta come SQL LIKE operatore. Supporta tutti i caratteri jolly standard inclusi:

  • % Qualsiasi stringa di zero o più caratteri.
  • _ (sottolineatura) Qualsiasi singolo carattere.
  • [ ] Qualsiasi singolo carattere all'interno dell'intervallo specificato ([a-f]) o impostato ([abcdef]).
  • [^] Qualsiasi singolo carattere non compreso nell'intervallo specificato ([^a-f]) o impostato ([^abcdef]).

SqlFunctions.PatIndex è spesso disponibile quando SqlMethods.Like non è disponibile (anche all'interno dei controller MVC)