2012-03-28 60 views
2

我试图创建LINQ lambda表达式返回客户,其姓或名与特定的字母开头。但是我得到的。选择了错误说:运营商'。'不能应用于lambda表达式

运营商“”不能应用于lambda表达式。

public JsonResult GetCust(string term) 
{ 
    var data = context.Customers 
      .Where((dr => dr.First.StartsWith(term) == true) || (dr => dr.Last.StartsWith(term) == true)) 
      .Select(dr => new { Name=String.Concat(dr.First, dr.Last), Adrs = dr.Street, value = dr.CustID }) 
      .Take(10); 
    return Json(data, JsonRequestBehavior.AllowGet); 
} 

任何想法如何返回所需的数据?

+0

OPS ...... 看来我只是忘了输入的。凡 另一个右括号应该是: 。凡((DR = > dr.First.StartsWith(项)==真)||(DR => dr.Last.StartsWith(项)==真))) – Tihi 2012-03-28 13:10:42

回答

2

在下面一行:

.Where((dr => dr.First.StartsWith(term) == true) || (dr => dr.Last.StartsWith(term) == true)) 

您在两个拉姆达表达式使用|| - 运算符。

的WHERE子句更应该是这样的:

.Where(dr => dr.First.StartsWith(term) || dr.Last.StartsWith(term)) 
+0

正如我张贴question-这就是它 - 没有后发现了几分钟在我的表达中不必要的括号。 – Tihi 2012-03-28 13:18:07