tengo un cuadro de texto que permite a un usuario especificar una cadena de búsqueda, incluyendo comodines, por ejemplo:¿Cómo se usa SQL 'LIKE' con LINQ para Entidades?
Joh*
*Johnson
*mit*
*ack*on
Antes de utilizar LINQ a Entidades, que tenía un procedimiento almacenado que se llevó a esa cadena como parámetro y lo hizo:
SELECT * FROM Table WHERE Name LIKE @searchTerm
Y entonces yo sólo haría un String.Replace ('*', '%') antes de pasarlo en.
Ahora con LINQ a Entidades que estoy tratando de lograr lo mismo. Sé que hay compatibilidad con StartsWith, EndsWith y Contiene, pero no la admitirá de la manera que necesito.
leí sobre "SqlMethods.Like" y probamos este:
var people = from t in entities.People
where SqlMethods.Like(t.Name, searchTerm)
select new { t.Name };
Sin embargo estoy recibiendo la siguiente excepción:
LINQ to Entities does not recognize the method 'Boolean Like(System.String,
System.String)' method, and this method cannot be translated into a store
expression.
¿Cómo voy a conseguir esta misma funcionalidad utilizando LINQ a Entidades?
eSQL FTW! +1 ... – Randolpho
Gracias, esto hizo exactamente lo que necesitaba sin muchas artimañas. – esac
De nada :) –