在LINQ to SQL中使用包含

时间:2013-07-02 16:43:05

标签: c# linq linq-to-sql join

如何在没有完全匹配的情况下进行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关键字。

2 个答案:

答案 0 :(得分:10)

您无法在Linq联接中使用like。实际上,您根本不能在Linq中使用like,只能使用常规字符串方法,例如StartsWithEndsWithContains

你必须做这样的事情:

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在链接问题中的回答)