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