2010-08-18 42 views
6

Tôi có một câu lệnh SQL đơn giản.LINQ to SQL "không thích" toán tử

Chọn giá trị khác biệt với tablename nơi giá trị không thích '% THI%'

Làm thế nào để viết những dòng này trong LINQ to SQL cú pháp.

Tôi đã thử tuyên bố bên dưới nhưng dường như nó không hoạt động.

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

Bạn không cần phải sử dụng% THI% phần trăm trong Có. –

Trả lời

12

Vấn đề là "%" - bạn đang tìm kiếm những thứ theo nghĩa đen không chứa "% TEST%" có thể là mọi thứ. Tôi nghĩ rằng bạn có nghĩa là:

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

ninja'ed. -.- Làm thế nào bạn có thể rất nhanh. – Femaref

+2

Anh ta có AI được viết bằng C# bằng tính năng Trả lời tự động. –

+0

Chà. Nó thật nhanh. Thanks..Worked như một say mê. – mahesh

2

Nếu bạn đã bị mắc kẹt với một khuôn mẫu cho sql để phù hợp, bạn có thể sử dụng SqlMethods.Like

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