Как сделать запрос LIKE с помощью linq? - PullRequest
32 голосов
/ 12 октября 2010

Как я могу выполнить запрос LIKE в Linq?

У меня есть следующий запрос, который я хотел бы выполнить.

var results = from c in db.costumers
              where c.FullName LIKE "%"+FirstName+"%,"+LastName
              select c;

Ответы [ 8 ]

34 голосов
/ 12 октября 2010

Можно использовать SqlMethods.Like (matchExpression, pattern)

var results = from c in db.costumers
              where SqlMethods.Like(c.FullName, "%"+FirstName+"%,"+LastName)
              select c;

Использование этого метода вне LINQ to SQL всегда будетгенерировать исключение NotSupportedException.

34 голосов
/ 12 октября 2010

Попробуйте использовать string.Contains () в сочетании с EndsWith.

var results = from c in db.Customers
              where c.FullName.Contains (FirstName) && c.FullName.EndsWith (LastName)
              select c;
13 голосов
/ 12 октября 2010

Попробуйте вот так

var results = db.costumers.Where(X=>X.FullName.Contains(FirstName)&&(X=>X.FullName.EndsWith(LastName))
                          .Select(X=>X);
4 голосов
/ 31 октября 2011
String [] obj = (from c in db.Contacts
                           where c.FirstName.StartsWith(prefixText)
                           select c.FirstName).ToArray();
            return obj;

StartsWith () и EndsWith () могут вам здесь очень помочь.Если вы хотите найти данные между полями, можно использовать Contains ().

2 голосов
/ 12 октября 2010
 where c.FullName.Contains("string")
1 голос
/ 12 марта 2019

2019 здесь:

Требуется EF6

using System.Data.Entity;
string searchStr ="bla bla bla";
var result = _dbContext.SomeTable.Where(x=> DbFunctions.Like(x.NameAr, string.Format("%{0}%", searchStr ))).FirstOrDefault();
1 голос
/ 12 октября 2010

Вы можете использовать содержит:

string[] example = { "sample1", "sample2" };
var result = (from c in example where c.Contains("2") select c);
// returns only sample2
0 голосов
/ 15 апреля 2016

var StudentList = dbContext.Students.SqlQuery("Select * from Students where Email like '%gmail%'").ToList<Student>();

Пользователь может использовать этот же запрос в Linq и заполнить модель студента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...