11

如何在没有完全匹配的情况下进行 LINQ to SQL 连接?例如,假设我有一个form包含数据的表John Smith (2),我想将它连接到Smithtable中的字段name。像这样的东西

var query =
    from f in db.form
    join n in db.name
        on f.nameField like '%' + n.firstName + '%'

尽管like我似乎无法使用该关键字。

4

2 回答 2

13

您不能like在 Linq 连接中使用。事实上,你根本不能like在 Linq 中使用,只能使用常规的字符串方法,如StartsWith,EndsWithContains.

你必须做这样的事情:

var query =
    from f in db.form
    from n in db.name.Where(x => f.nameField.Contains(x.firstName))
    ...
于 2013-07-02T16:44:56.167 回答
5

实际上,有一种方法可以做到这一点,但它不如使用标准 linq 的东西那么整洁:

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

(借用用户LP在链接问题中的回答)

于 2013-07-02T16:51:50.360 回答