2010-08-18 6 views
6

J'ai une instruction SQL simple.Linq to SQL "pas comme" opérateur

Sélectionner une valeur distincte de tablename où la valeur non comme « % Test% »

Comment puis-je écrire ceci dans Linq à la syntaxe SQL.

J'ai essayé l'instruction ci-dessous mais cela ne semble pas fonctionner.

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

Vous ne devez utiliser% Test% le pour cent en contient. –

Répondre

12

Le problème est le « % » - vous cherchez des choses qui ne contiennent pas littéralement « % ESSAI% », qui serait probablement tout. Je pense que vous voulez dire:

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

ninja'ed. -.- comment pouvez-vous être si rapide. – Femaref

+2

Il a une AI écrite en C# avec réponse automatique. –

+0

Wow. C'était rapide. Merci ... travaillé comme un charme. – mahesh

2

Si vous étiez coincé avec un motif pour sql pour correspondre, vous pouvez utiliser SqlMethods.Like

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