LINQ und optionale Parameter

7

Ich entwerfe einen Webservice, der von einer MVC-App genutzt werden kann (ziemlich einfaches Zeug), aber ich brauche eine einzige Methode im Webservice, die bis zu vier optionale Parameter (catId, brandId, lowestPrice und highestPrice) benötigt. .

Wie schreibe ich die Linq-Abfrage, so dass es im Wesentlichen

ausgeführt wird %Vor%

Ich hoffe, das macht Sinn.

    
Will Whitehead 23.10.2015, 14:04
quelle

4 Antworten

12

Die Parameter der Methode könnten Nullwerte akzeptieren und die Where-Einschränkung könnte für jeden Nicht-Null-Parameter ausgewertet werden:

%Vor%     
Martin Staufcik 23.10.2015, 14:13
quelle
5

Wenn dies Linq To SQL ist:

%Vor%

Linq To SQL schreibt die gesendete SQL effizient ohne eine where-Klausel in das Backend, wenn CatId null ist. Sie können mehrere dieser Konstrukte haben, und nur diejenigen mit einem nonNull-Wert sind im where-Konstrukt enthalten.

    
Cetin Basoz 23.10.2015 14:27
quelle
4
%Vor%

Für Ihre anderen 3 optionalen Parameter können Sie AND hinzufügen und Ihre gesamte Suche in einer linq-Anweisung ausführen.

    
Joe 23.10.2015 14:09
quelle
1

Etwas im Sinne des Folgenden sollte den Trick machen:

%Vor%

Dies könnte / könnte in eine LINQ-Anweisung mit einer einzigen Zeile vereinfacht werden (siehe unten), aber ich habe es oben aus Gründen der Klarheit lang geschrieben:

%Vor%     
Rob 23.10.2015 14:10
quelle

Tags und Links