【发布时间】:2019-06-29 14:05:29
【问题描述】:
我有一种搜索方法,如下所示:
public IEnumerable<Result> Search(string searchText)
{
return _context.Person.Where(x => x.Contains(searchText));
}
我希望能够在 searchText 为 null/空的情况下调用此函数并取回所有记录。
我试过这个没有运气:
return _context.Person.Where(x => x.Contains(searchText ?? ""));
除了将其分为两个步骤并在 if 语句中检查searchString 后再将其应用于查询之外,还有其他方法可以实现吗?
【问题讨论】:
-
相关(但不是您的具体问题):stackoverflow.com/questions/682429/…
-
Contains是您的Person类的方法吗?哪个搜索 FirstName 和 LastName 等?您是如何获得使用 LINQ to Entities 的原始版本_context.Person.Where(x => x.Contains(searchText))的?你能展示一下这个方法吗? -
我明白了,但是示例中的查询类型与您的情况不同。在链接中是像
Where(x => x.City.Contains(searchText))这样的查询,它是string的Contains方法(EF 提供程序可以将其映射到SQL 语句),而不是像你看起来的Person类上的用户定义方法Contains具有。 (上面代码中的x是Person而不是string。) -
哦,对不起,我为了一个简单的例子改变了我的代码。我的代码更像 _context.Person.Where(x => x.LastName.Contains(searchText))
标签: c# linq entity-framework entity-framework-4