2010-08-18 7 views
6

Tengo una instrucción SQL simple.Operador "no me gusta" de Linq a SQL

Seleccione valor distinto del nombre de tabla donde el valor no como 'TEST%%'

¿Cómo escribo esto en LINQ a la sintaxis SQL.

Probé la siguiente declaración pero parece que no funciona.

var p = (from c in tablename where !(c.value.ToUpper().Contains("%TEST%")) 
     select c.Value).Distinct().ToList() 
+0

Usted no necesita utilizar% TEST% el porcentaje de Contiene. –

Respuesta

12

El problema es el "%" - que está buscando cosas que literalmente no contienen "% TEST%" lo que probablemente sería todo. Creo que te refieres:

var p = (from c in tablename 
     where !c.Value.ToUpper().Contains("TEST") 
     select c.Value).Distinct().ToList() 
+0

ninja'ed. -.- ¿Cómo puedes ser tan rápido? – Femaref

+2

Tiene una IA escrita en C# con respuesta automática. –

+0

Wow. Eso fue rápido. Gracias, trabajó como un encanto. – mahesh

2

Si a usted le toca un patrón de SQL para que coincida, se puede usar SqlMethods.Like

string pattern = "%TEST%"; 
    ... 
from c in tablename 
where !SqlMethods.Like(c.Value, pattern) 
select c 
Cuestiones relacionadas