Nếu truy vấn LINQ được thực thi trong ngữ cảnh cơ sở dữ liệu, một lệnh gọi Contains()
được ánh xạ tới LIKE
toán tử:
.Where(a => a.Field.Contains("hello"))
trở thành Field LIKE '%hello%'
. Các LIKE
nhà điều hành là trường hợp nhạy cảm theo mặc định, nhưng có thể được thay đổi bằng cách thay đổi collation của cột .
Nếu truy vấn LINQ được thực thi trong ngữ cảnh .NET, bạn có thể sử dụng IndexOf () , nhưng phương thức đó không được hỗ trợ trong LINQ to SQL.
LINQ to SQL không hỗ trợ các phương thức lấy tham số CultureInfo làm tham số, có lẽ vì nó không thể đảm bảo rằng máy chủ SQL xử lý các nền văn hóa giống như .NET. Đây không phải là hoàn toàn đúng, bởi vì nó không hỗ trợ StartsWith(string, StringComparison)
.
Tuy nhiên, nó dường như không hỗ trợ một phương thức đánh giá LIKE
trong LINQ to SQL và so sánh trường hợp không nhạy cảm trong .NET, khiến cho không thể thực hiện các trường hợp không phân biệt chữ hoa chữ thường () theo cách nhất quán.