Saltar al contenido

¿Cómo hacer SQL Like% en Linq?

La guía paso a paso o código que verás en este artículo es la solución más fácil y efectiva que hallamos a tu duda o dilema.

Solución:

.Where(oh => oh.Hierarchy.Contains("/12/"))

También puedes usar .StartsWith() o .EndsWith().

Utilizar este:

from c in dc.Organization
where SqlMethods.Like(c.Hierarchy, "%/12/%")
select *;

Supongo que está usando Linq-to-SQL * (vea la nota a continuación). Si es así, utilice string.Contiene, string.EmpiezaCon, y string.EndsWith para generar SQL que utilice el operador SQL LIKE.

from o in dc.Organization
join oh in dc.OrganizationsHierarchy on o.Id equals oh.OrganizationsId
where oh.Hierarchy.Contains(@"/12/")
select new  o.Id, o.Name 

o

from o in dc.Organization
where o.OrganizationsHierarchy.Hierarchy.Contains(@"/12/")
select new  o.Id, o.Name 

Nota: * = si está utilizando ADO.Net Entity Framework (EF/L2E) en .net 3.5, tenga en cuenta que no realizará la misma traducción que Linq-to-SQL. Aunque L2S hace una traducción adecuada, L2E v1 (3.5) se traducirá en una expresión t-sql que forzará un escaneo de tabla completo en la tabla que está consultando a menos que haya otro discriminador mejor en su cláusula where o filtros de combinación.
Actualizar: Esto se solucionó en EF/L2E v4 (.net 4.0), por lo que generará un SQL LIKE como lo hace L2S.

Comentarios y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *