Küçük harf duyarsız dize karşılaştırmaları gerçekleştirmek için ToUpper ve ToLower kullanmanın akıllıca olmadığını okudum, ancak LINQ-SQL söz konusu olduğunda alternatif görmüyorum. String.Compare öğesinin ignoreCase ve CompareOptions bağımsız değişkenleri LINQ-to-SQL tarafından yoksayılır (büyük / küçük harfe duyarlı bir veritabanı kullanıyorsanız, büyük / küçük harfe duyarlı olmayan bir karşılaştırma isteseniz bile büyük / küçük harfe duyarlı bir karşılaştırma elde edersiniz). ToLower veya ToUpper burada en iyi seçenek mi? Biri diğerinden daha iyi mi? Bir yerde ToUpper'ın daha iyi olduğunu okuduğumu sanıyordum, ama burada geçerli olup olmadığını bilmiyorum. (Kod incelemeleri çok yapıyorum ve herkes ToLower kullanıyor.)
Dim s = From row In context.Table Where String.Compare(row.Name, "test", StringComparison.InvariantCultureIgnoreCase) = 0
Bu, row.Name öğesini "test" ile karşılaştıran ve büyük / küçük harf duyarlı bir veritabanında "Test" ve "TEST" döndürmeyecek bir SQL sorgusuna dönüşür.
LINQQuery.Contains("VaLuE", StringComparer.CurrentCultureIgnoreCase)
ve gibi diğer LINQ uzantılarıyla da çalışırLINQQuery.Except(new string[]{"A VaLUE","AnOTher VaLUE"}, StringComparer.CurrentCultureIgnoreCase)
. Wahoo!