Linq-Abfrage mit Contains und Nullable-Wert

Habe ich eine Methode für die Suche, die aussieht wie diese:

public IEnumerable<Result> Search(string searchText)
{

     return _context.Person.Where(x => x.Contains(searchText));
}

Ich möchte in der Lage sein, um diese Funktion aufrufen mit searchText null/leer und erhalten Sie alle Datensätze wieder ein.

Ich haben versucht, dies ohne Glück:

return _context.Person.Where(x => x.Contains(searchText ?? ""));

gibt es einen anderen Weg um dies zu erreichen, neben breaking es in zwei Schritten und überprüfen searchString in einer if-Anweisung, bevor Sie auf die Abfrage?

  • Verwandte (aber nicht dein spezifisches problem hier): stackoverflow.com/questions/682429/...
  • Ist Contains eine Methode Ihres Person Klasse? Die sucht nach FirstName und LastName und so weiter? Wie hast du sogar die original version _context.Person.Where(x => x.Contains(searchText)) Arbeit mit LINQ to Entities? Können Sie diese Methode?
  • weblogs.asp.net/zeeshanhirani/archive/2008/04/18/...
  • Ich sehe, aber die Beispiele dort sind ganz andere Typen von Abfragen, die über Ihren Fall. In dem link sind Abfragen wie Where(x => x.City.Contains(searchText)) ist die Contains Methode einer string (EF-Anbieter können die Karte, um SQL-Anweisungen) und nicht eine benutzerdefinierte Methode Contains auf Ihre Person Klasse wie Sie zu haben scheinen. (x im code oben ist ein Person und nicht ein string.)
  • oh im sorry, ich habe meinen code für ein kleines Beispiel..meine ist mehr wie _context.Person.Where(x => x.Nachname.Enthält(searchText))
InformationsquelleAutor stephen776 | 2011-04-08
Schreibe einen Kommentar