使用LINQ到SQL联接中的包含

本文关键字:包含 LINQ SQL 使用 | 更新日期: 2023-09-27 18:20:54

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

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

虽然like关键字似乎对我不可用。

使用LINQ到SQL联接中的包含

不能在Linq联接中使用like。事实上,在Linq中根本不能使用like,只能使用传统的字符串方法,如StartsWithEndsWithContains

你必须这样做:

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 *;

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