0

我想知道是否有类似的东西 linq to SQL)

customers.Where(c => SqlMethods.Like(c.Name, "%john%"));

可以在实体框架中进行。最好使用lamba表达式。

我的目标是做这样的事情:

string searchString1 = "%foo";
string searchString2 = "%foo%";
string searchString3 = "foo";

customers.Where(c => SqlMethods.Like(c.Name, searchStringX));
4

4 回答 4

0

您可以使用字符串 contains、开头和结尾的方法来做同样的事情:

string searchString1 = "foo"

var customerList = from x in customers where x.Name.Contains(searchString1) select x;

 var customerList = from x in customers where x.Name.StartsWith(searchString1) select x;

 var customerList = from x in customers where x.Name.EndsWith(searchString1) select x;
于 2013-06-14T12:20:04.333 回答
0

我最终得到了以下解决方案:

.Where(c => SqlFunctions.PatIndex("%John", c.Name) > 0);
于 2013-06-14T13:42:08.543 回答
0

客户.where(c=>c.name.contains("foo"))

你可以试试这个,它会 100% 工作

于 2013-06-14T12:17:11.510 回答
0

不知道 lambda 表达式中的任何新内容,但您可以编写这样的 linq 查询:

var result = from i in customers 
         where i.name.Contains("yourString") 
         select i;

列的数据类型也应该是 varchar

更新:刚刚用 lambda 表达式弄清楚了

var result = customers.Where(c => c.name.StartsWith("yourString"));
var result = customers.Where(c => c.name.EndsWith("yourString"));
var result = customers.Where(c => c.name.Contains("yourString"));
于 2013-06-14T12:17:16.180 回答