使用实体框架的LIKE查询

本文关键字:LIKE 查询 框架 实体 | 更新日期: 2024-09-24 22:08:55

可能重复:
如何在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。

怎么做?

谢谢。

使用实体框架的LIKE查询

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

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

这也应该有效我编辑了我的答案。

Contains被映射到LIKE"%@p0%",这是不区分大小写的

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;