请考虑以下代码:
var articlesDisplay = from product in db.ProductSearchData
select product.articles;
articlesDisplay = articlesDisplay.Where(a => a[].body.Contains(searchString));
我正在尝试加载结果集,但在Where子句中使用数组表示法得到编译器错误。我该怎么办呢?
期望的最终结果是var articlesDisplay对象,可以在ASP.NET MVC分页中使用。
感谢您的帮助!
删除数组表示法
var articlesDisplay = from product in db.ProductSearchData
select product.articles;
articlesDisplay = articlesDisplay.Where(a => a.body.Contains(searchString));
lambda表达式就像一个函数声明,但它取代了method name(paramters){body }
,它采用parameters => body
的形式。所以这:
a => a[].body.Contains(searchString)
与此相同:
bool Method(Article article)
{
return article[].body.Contains(searchString);
}
这显然无效,因为它不会编译。你需要一个Func<T,bool>
,或者一个接受单个元素的函数,并根据它是否包含它返回true或false。所以你可能想要这个:
bool Method(Article article)
{
return article.body.Contains(searchString);
}
这转化为:
a => a.body.Contains(searchString).