Suche in allen Feldern einer Entität

8

Ich versuche, eine "Omnibox" -Typ-Suche über eine Kundendatenbank zu implementieren, wo eine einzelne Abfrage versuchen sollte, mit den Eigenschaften eines Kunden übereinzustimmen.

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

%Vor%
  • Wenn die Abfrage "Jane" lautet, würde ich erwarten, dass Zeile 1 und Zeile 2 zurückgegeben werden.
  • Eine Abfrage für 12345 würde Zeilen 1 und 3 ergeben.

Im Moment sieht mein Code so aus:

%Vor%

Das funktioniert offensichtlich. Es riecht aber nach wirklich schlechter Praxis für mich, da jede Veränderung in der Entität (Entfernen von Eigenschaften, Einführung neuer Eigenschaften) das Zeug brechen würde.

Also: Gibt es LINQ-foo, das über alle Eigenschaften der Entität sucht, die ich darauf werfe?

    
vzwick 11.10.2012, 17:01
quelle

1 Antwort

10

Suchen Sie zuerst alle Eigenschaften in der Customer-Klasse mit demselben Typ wie die Abfrage:

%Vor%

Finden Sie dann alle Kunden aus dem Kontext, der mindestens eine Eigenschaft mit einem Wert hat, der der Abfrage entspricht:

%Vor%     
Bijan 11.10.2012, 17:38
quelle