Сложное сопоставление строк с LINQ to Entity Framework - PullRequest
1 голос
/ 23 октября 2009

Мы используем LINQ to EF для разработки решения.

В моем запросе LINQ я хотел бы

string toMatch = "Matt Cool";

newString = toMatch.Replace(" ", "% ") + "%"; 

// So here newString is 'Matt% Cool%'

/*Now in my datasource, there is no 'Matt Cool', there's 'Matthew Coolguy'.
I would like this query to return that result. 
I would expect this behavior with the 
wildcard. It doesn't work*/

var results = from a in mycontainer.users
              where a.fullname.equals(newString)
              select a.fullname;

Я пробовал "*" в качестве символа подстановки и регулярных выражений, но безрезультатно - есть ли другие варианты?

Ответы [ 2 ]

6 голосов
/ 23 октября 2009

вместо использования Равно попробуйте использовать Содержит это должно занять ваши групповые символы, потому что внутри LINQ использует LIKE при использовании Содержит

var results = from a in mycontainer.users
              where a.fullname.Contains(newString)
              select a.fullname;
0 голосов
/ 04 февраля 2011

Есть отличная статья, которая описывает, как это сделать: Regex в структуре сущностей

...