如何用linq进行LIKE查询?

时间:2010-10-12 10:33:29

标签: c# linq-to-sql

如何在Linq中执行LIKE查询?

我想执行以下查询。

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

8 个答案:

答案 0 :(得分:33)

您可以使用 SqlMethods.Like(matchExpression,pattern)

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

在LINQ to SQL之外使用此方法将始终抛出NotSupportedException异常。

答案 1 :(得分:32)

尝试将string.Contains()与EndsWith结合使用。

var results = from c in db.Customers
              where c.FullName.Contains (FirstName) && c.FullName.EndsWith (LastName)
              select c;

答案 2 :(得分:13)

试试这个

var results = db.costumers.Where(X=>X.FullName.Contains(FirstName)&&(X=>X.FullName.EndsWith(LastName))
                          .Select(X=>X);

答案 3 :(得分:4)

String [] obj = (from c in db.Contacts
                           where c.FirstName.StartsWith(prefixText)
                           select c.FirstName).ToArray();
            return obj;

StartsWith()和EndsWith()可以在这里帮到你很多。如果要在字段之间查找数据,则可以使用Contains()。

答案 4 :(得分:2)

 where c.FullName.Contains("string")

答案 5 :(得分:1)

您可以使用contains:

string[] example = { "sample1", "sample2" };
var result = (from c in example where c.Contains("2") select c);
// returns only sample2

答案 6 :(得分:1)

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();

答案 7 :(得分:0)

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

用户可以在 Linq 中使用类似查询,并填写学生模型。