web-dev-qa-db-fra.com

Requête LIKE avec Entity Framework

Duplicata possible:
Comment faire SQL comme% dans Linq?
comme opérateur dans Entity Framework?

Je fais une requête comme celle-ci:

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

Mais je n'ai pas besoin de m.Name pour être exactement égal à la clé. J'ai besoin de m.Name comme clé.

Je ne trouve pas comment recréer la requête SQL:

    WHERE m.Name LIKE key

J'utilise SQL Server 2008 R2.

Comment faire?

Merci.

35
user1537004

Est-ce que quelque chose comme ça fonctionnerait pour vous ..?

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

cela devrait aussi fonctionner j'ai édité ma réponse

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

Effectuez la recherche et comparez si la chaîne est en minuscules ou en majuscules pour obtenir le meilleur résultat car C # est sensible à la casse.

var matches = from m in db.Customers     
    where m.Name.ToLower().StartsWith(key.ToLower())
    select m;
19
Andrew Cooper