left inner c# linq linq-to-sql join

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)