如何在Linq中執行LIKE查詢?如何用linq做一個LIKE查詢?
我有以下查詢我想要執行。
var results = from c in db.costumers
where c.FullName LIKE "%"+FirstName+"%,"+LastName
select c;
如何在Linq中執行LIKE查詢?如何用linq做一個LIKE查詢?
我有以下查詢我想要執行。
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以外的SQL總會拋出NotSupportedException異常。
嘗試使用string.Contains()與EndsWith組合。
var results = from c in db.Customers
where c.FullName.Contains (FirstName) && c.FullName.EndsWith (LastName)
select c;
我比SqlMethods更喜歡這個 – 2015-10-20 17:29:56
與'like'查詢相反,這不區分大小寫。 – 2016-05-18 11:56:04
如果使用實體框架,此查詢將轉換爲SQL LIKE語句,因此其大小寫敏感性取決於列/表/ db的排序規則。 – 2017-09-14 09:54:13
where c.FullName.Contains("string")
您可以使用包含:
string[] example = { "sample1", "sample2" };
var result = (from c in example where c.Contains("2") select c);
// returns only sample2
嘗試這樣
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()。
var StudentList = dbContext.Students.SqlQuery("Select * from Students where Email like '%gmail%'").ToList<Student>();
用戶可以在LINQ的使用類似的查詢,並填寫學生模型。
如果輸入來自用戶,則容易引發SQL注入... – Phil1970 2016-08-04 16:30:09
我沒有時間用這個方法來解決問題:其中SqlMethods.Like(s.Email,id +「%」)通過一個錯誤(是的,我使用System.Data.Linq.SqlClient;我更改爲在哪裏s.Email.Contains(id)即使那是不一樣的,我可以使它改變EndsWith – 2015-10-20 17:29:30