Jak mogę wykonać zapytanie LIKE w Linq?Jak wykonać zapytanie LIKE z linq?
Mam następujące zapytanie, które chciałbym wykonać.
var results = from c in db.costumers
where c.FullName LIKE "%"+FirstName+"%,"+LastName
select c;
Jak mogę wykonać zapytanie LIKE w Linq?Jak wykonać zapytanie LIKE z linq?
Mam następujące zapytanie, które chciałbym wykonać.
var results = from c in db.costumers
where c.FullName LIKE "%"+FirstName+"%,"+LastName
select c;
Można użyć SqlMethods.Like(matchExpression,pattern)
var results = from c in db.costumers
where SqlMethods.Like(c.FullName, "%"+FirstName+"%,"+LastName)
select c;
Wykorzystanie tej metody poza LINQ to SQL będzie zawsze rzucić wyjątek NotSupportedException.
Spróbuj użyć string.Contains() w połączeniu z EndsWith.
var results = from c in db.Customers
where c.FullName.Contains (FirstName) && c.FullName.EndsWith (LastName)
select c;
Wolę to od SqlMethods –
W przeciwieństwie do zapytania 'like', nie ma znaczenia wielkość liter. –
To zapytanie jest tłumaczone na instrukcję SQL LIKE, jeśli używa się Entity Framework, więc jej rozróżnianie wielkości liter zależy od sortowania kolumny/tabeli/db. –
where c.FullName.Contains("string")
Można użyć zawiera:
string[] example = { "sample1", "sample2" };
var result = (from c in example where c.Contains("2") select c);
// returns only sample2
Spróbuj jak to
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() i endswith() może pomóc partii tutaj. Jeśli chcesz znaleźć dane pomiędzy polami, możesz użyć Contains().
var StudentList = dbContext.Students.SqlQuery("Select * from Students where Email like '%gmail%'").ToList<Student>();
Użytkownik może korzystać z tego podobnego zapytania w Linq i wypełnić model studencki.
Skłonny do iniekcji SQL, jeśli dane wejściowe pochodzą od użytkownika ... – Phil1970
Nie miałem czasu na małpowanie z tym: gdzie SqlMethods.Like (s.Email, id + "%"), że przez błąd (tak, mam za pomocą System.Data.Linq.SqlClient;, zmieniłem na gdzie s.Email.Contains (id), nawet jeśli to nie to samo, mogę sprawić, by działał z zamianą na EndsWith –