c# - left - select inner join linq
El uso contiene en LINQ to SQL join (2)
¿Cómo puedo hacer una unión de LINQ a SQL sin una coincidencia exacta? Por ejemplo, supongamos que tengo un form
tabla con los datos de John Smith (2)
y quiero unirlo al campo Smith
en el name
tabla. Algo como esto
var query =
from f in db.form
join n in db.name
on f.nameField like ''%'' + n.firstName + ''%''
Aunque la palabra clave like
no parece estar disponible para mí.
No puedes usar "me like
en una unión de Linq. De hecho, no se puede usar like
Linq en absoluto, solo métodos de cadenas convencionales como StartsWith
, EndsWith
o Contains
.
Tendría que hacer algo como esto:
var query =
from f in db.form
from n in db.name.Where(x => f.nameField.Contains(x.firstName))
...
En realidad, hay una manera de hacerlo , pero no es tan limpio como usar las cosas linq estándar:
from c in dc.Organization
where SqlMethods.Like(c.Hierarchy, "%/12/%")
select *;
(tomado de la respuesta del LP del usuario en la pregunta vinculada)