44

可能重复:
如何在 Linq 中执行 SQL Like %?
像实体框架中的运算符?

我正在做这样的查询:

    var matches = from m in db.Customers
        where m.Name == key
        select m;

但我不需要m.Name完全等于 key。我需要m.Name像钥匙一样。

我找不到如何重新创建 SQL 查询:

    WHERE m.Name LIKE key

我正在使用 SQL Server 2008 R2。

怎么做?

谢谢。

4

2 回答 2

70

像这样的 linq 查询对你有用吗?

var matches = from m in db.Customers
    where m.Name.Contains(key)      
    select m;

这也应该工作我编辑了我的答案。

Contains映射到不区分大小写的 LIKE '%@p0%'

于 2012-08-02T22:24:50.110 回答
24
var matches = from m in db.Customers     
    where m.Name.StartsWith(key)
    select m;

进行搜索并比较字符串是小写还是大写以获得最佳结果,因为 C# 区分大小写。

var matches = from m in db.Customers     
    where m.Name.ToLower().StartsWith(key.ToLower())
    select m;
于 2012-08-02T22:23:01.500 回答