Как я могу выполнить запрос LIKE в Linq?
У меня есть следующий запрос, который я хотел бы выполнить.
var results = from c in db.costumers where c.FullName LIKE "%"+FirstName+"%,"+LastName select c;
Можно использовать SqlMethods.Like (matchExpression, pattern)
var results = from c in db.costumers where SqlMethods.Like(c.FullName, "%"+FirstName+"%,"+LastName) select c;
Использование этого метода вне LINQ to SQL всегда будетгенерировать исключение NotSupportedException.
Попробуйте использовать string.Contains () в сочетании с EndsWith.
var results = from c in db.Customers where c.FullName.Contains (FirstName) && c.FullName.EndsWith (LastName) select c;
Попробуйте вот так
var results = db.costumers.Where(X=>X.FullName.Contains(FirstName)&&(X=>X.FullName.EndsWith(LastName)) .Select(X=>X);
String [] obj = (from c in db.Contacts where c.FirstName.StartsWith(prefixText) select c.FirstName).ToArray(); return obj;
StartsWith () и EndsWith () могут вам здесь очень помочь.Если вы хотите найти данные между полями, можно использовать Contains ().
where c.FullName.Contains("string")
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();
Вы можете использовать содержит:
string[] example = { "sample1", "sample2" }; var result = (from c in example where c.Contains("2") select c); // returns only sample2
var StudentList = dbContext.Students.SqlQuery("Select * from Students where Email like '%gmail%'").ToList<Student>();
Пользователь может использовать этот же запрос в Linq и заполнить модель студента.