Si la consulta LINQ se ejecuta en el contexto de la base de datos, Contains()
se asigna una llamada al LIKE
operador:
.Where(a => a.Field.Contains("hello"))
se convierte Field LIKE '%hello%'
. El LIKE
operador no distingue entre mayúsculas y minúsculas de forma predeterminada, pero eso se puede cambiar cambiando la clasificación de la columna .
Si la consulta LINQ se ejecuta en contexto .NET, puede usar IndexOf () , pero ese método no es compatible con LINQ to SQL.
LINQ to SQL no admite métodos que toman un CultureInfo como parámetro, probablemente porque no puede garantizar que el servidor SQL maneje cultivos de la misma manera que .NET. Esto no es completamente cierto, porque sí es compatible StartsWith(string, StringComparison)
.
Sin embargo, no parece admitir un método que se evalúe LIKE
en LINQ to SQL y en una comparación de mayúsculas y minúsculas en .NET, por lo que es imposible hacer Contains () insensible a mayúsculas y minúsculas de manera consistente.