Comment utiliser SQL "LIKE" avec LINQ to entities?

J'ai une zone de texte qui permet à l'utilisateur de spécifier une chaîne de recherche, y compris les cartes, par exemple:

Joh*
*Johnson
*mit*
*ack*on

Avant à l'aide de LINQ to entities, j'ai eu une procédure stockée qui a pris cette chaîne de caractères comme paramètre et n':

SELECT * FROM Table WHERE Name LIKE @searchTerm

Et puis je voudrais juste faire une Chaîne de caractères.Replace('*', '%') avant de les passer en.

Maintenant avec LINQ to entities, je suis en train de faire la même chose. Je sais qu'il est StartsWith, EndsWith et Contient la prise en charge, mais il ne le supportent pas de la manière dont j'ai besoin.

J'ai lu à propos de "SqlMethods.Comme" et essayé ceci:

var people = from t in entities.People
             where SqlMethods.Like(t.Name, searchTerm)
             select new { t.Name };

Cependant, je suis l'exception suivante:

LINQ to Entities does not recognize the method 'Boolean Like(System.String, 
System.String)' method, and this method cannot be translated into a store 
expression.

Comment aurais-je obtenir cette même fonctionnalité à l'aide de LINQ to entities?

InformationsquelleAutor esac | 2010-06-22