2010-06-18 32 views
5

¿Es posible establecer la comparación de cadenas de marcos de entidades de forma insensible por defecto?Hacer que Entity Framework no distinga entre mayúsculas y minúsculas

Si uso

string.StartsWith("stringToCompare", StringComparison.CurrentCultureIgnoreCase) 

funciona. Pero cuando necesito usar

string.Contains("strigToCompare") 

no tiene una sobrecarga.

+1

SQL es de todos modos insensible a mayúsculas/minúsculas y EF solo delega sus consultas en SQL, EF no controla el caso, creo que es el problema de intercalación de su base de datos. –

Respuesta

3

Usted puede cambiar simplemente el caso de los dos campos a mayúsculas:

String stringToCompare = "Some String"; 

string.ToUpper().Contains(stringToCompare.ToUpper()) 

Esto hará entre mayúsculas y minúsculas la búsqueda mediante la conversión de todos los casos a superior. Por supuesto, ToLower() también funcionaría.

+0

Esto se rompería para la prueba "Foo" y "Foobar". dado que foobar contiene foo. Esta puede no ser la igualdad que estás buscando. – Jafin

+4

El póster solicita insensibilidad de mayúsculas y minúsculas al utilizar la función Contiene(). El ejemplo "Foo" y "Foobar" devolvería "verdadero", que es el resultado deseado. –

Cuestiones relacionadas