Предполагая, что Person
является классом Contains
, похоже, является методом этого класса. Выражение типа Where(x => x.Contains(searchText))
или Where(x => string.IsNullOrEmpty(searchText) || x.Contains(searchText))
, где x - это Person, вообще не будет работать с LINQ to Entities, даже с таким простым классом, как ...
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public bool Contains(string searchText)
{
return Name.Contains(searchText);
}
}
... это вызовет исключение, потому что LINQ to Entities не может преобразовать этот метод в выражение хранилища. Where(x => string.IsNullOrEmpty(searchText) || x.Name.Contains(searchText))
будет работать, хотя.