Durchsuchen Sie alle Felder einer Entität

Ich versuche, eine Suche vom Typ "Omnibox" über eine Kundendatenbank zu implementieren, bei der eine einzelne Abfrage versuchen sollte, mit Eigenschaften eines Kunden übereinzustimmen.

Hier sind einige Beispieldaten, um zu veranschaulichen, was ich erreichen möchte:

FirstName  | LastName  | PhoneNumber | ZipCode | ...
--------------------------------------------------
Mary       | Jane      | 12345       | 98765   | ...
Jane       | Fonda     | 54321       | 66666   | ...
Billy      | Kid       | 23455       | 12345   | ...
Wenn die Abfrage war"Jane"Ich würde erwarten, dass Zeile 1 ebenso wie Zeile 2 zurückgegeben wird.Eine Abfrage für12345 würde die Reihen # 1 und # 3 ergeben.

Im Moment sieht mein Code ungefähr so ​​aus:

IEnumerable<Customer> searchResult = context.Customer.Where(
    c => c.FirstName   == query ||
         c.LastName    == query ||
         c.PhoneNumber == query ||
         c.ZipCode     == query
         // and so forth. Fugly, huh?
);

Das funktioniert offensichtlich. Es riecht für mich jedoch nach wirklich schlechter Praxis, da jede Änderung der Entität (Entfernen von Eigenschaften, Einführung neuer Eigenschaften) zu Problemen führen würde.

Also: Gibt es ein LINQ-foo, das alle Eigenschaften von Entities durchsucht, die ich darauf abstelle?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage