44

Possible Duplicate:
How to do SQL Like % in Linq?
Like Operator in Entity Framework?

I'm doing a query like this:

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

But I don't need m.Name to be exactly equal to key. I need m.Name to be like key.

I can't find how to recreate the SQL query:

    WHERE m.Name LIKE key

I'm using SQL Server 2008 R2.

How to do it?

Thanks.

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 に答える