¿Como Operador en Entity Framework?

.net entity-framework linq-to-entities sql-server

Pregunta

Estamos tratando de implementar el operador "LIKE" en Entity Framework para nuestras entidades con campos de cadenas, pero no parece ser compatible. ¿Alguien más ha intentado hacer algo como esto?

Esta publicación del blog resume el problema que estamos teniendo. Podríamos usar contiene, pero eso solo coincide con el caso más trivial de LIKE. Combinar contiene, comienza con, final con e indexof nos lleva allí, pero requiere una traducción entre los comodines estándar y el código Linq to Entities.

Respuesta aceptada

Esta es una publicación antigua ahora, pero para cualquiera que busque la respuesta, este enlace debería ayudar.

Version corta:

Método SqlFunctions.PatIndex : devuelve la posición inicial de la primera aparición de un patrón en una expresión especificada, o ceros si no se encuentra el patrón, en todos los tipos de datos de texto y caracteres válidos

Espacio de nombres: System.Data.Objects.SqlClient Ensamblado: System.Data.Entity (en System.Data.Entity.dll)

Un poco de explicación también aparece en este hilo del foro .


Respuesta popular

Realmente no sé nada acerca de EF, pero en LINQ to SQL usualmente expresas una cláusula LIKE usando String. Contiene:

where entity.Name.Contains("xyz")

traduce a

WHERE Name LIKE '%xyz%'

(Use StartsWith y EndsWith para otro comportamiento).

No estoy completamente seguro de si eso es útil, porque no entiendo a qué te refieres cuando dices que estás intentando implementar LIKE. Si lo he entendido mal, hágamelo saber y eliminaré esta respuesta :)



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué