如何在没有完全匹配的情况下进行LINQ to SQL连接?例如,假设我有一个包含数据form
的表John Smith (2)
,我想将其加入表Smith
中的字段name
。像这样的东西
var query =
from f in db.form
join n in db.name
on f.nameField like '%' + n.firstName + '%'
虽然我似乎无法使用like
关键字。
答案 0 :(得分:10)
您无法在Linq联接中使用like
。实际上,您根本不能在Linq中使用like
,只能使用常规字符串方法,例如StartsWith
,EndsWith
或Contains
。
你必须做这样的事情:
var query =
from f in db.form
from n in db.name.Where(x => f.nameField.Contains(x.firstName))
...
答案 1 :(得分:5)
实际上,有a way of doing it,但它并不像使用标准的linq那样整洁:
from c in dc.Organization
where SqlMethods.Like(c.Hierarchy, "%/12/%")
select *;
(借用用户L P在链接问题中的回答)