Linq to SQL mehrere bedingte Where-Klauseln

8

Im Moment lade ich meine Ergebnisse wie folgt ab:

%Vor%

Aber jetzt versuche ich, bis zu 8 bedingte Where-Klauseln auf der Grundlage von Filtern oberhalb meiner Listenansicht hinzuzufügen.

Also habe ich mich umgedreht:

%Vor%

Wie kann ich für jeden Filter eine Überprüfung durchführen, um eine where-Klausel nur hinzuzufügen, wenn sie einen Wert enthält?

    
StevieB 25.04.2012, 20:16
quelle

3 Antworten

32

Es gibt keinen Grund, warum Sie die Ergebnisse nicht weiter filtern können, indem Sie .Where mehrmals aufrufen. Aufgrund der verzögerten Ausführung von LINQ to SQL wird alles in einer SQL-Anweisung ausgeführt:

%Vor%

Wenn Sie jemals ODER-Bedingungen hinzufügen müssen, können Sie sich PredicateBuilder ansehen.

>     
kevev22 25.04.2012, 22:14
quelle
0

Sie könnten jede Filteroption mit einer ODER-Null-Bedingung gruppieren und sie alle zusammen mit AND verketten, so:

%Vor%

Wenn also submissionId == null und claimId == "123", würde es nur die Ergebnisse von claimId filtern. Sie könnten jede null durch eine leere Zeichenfolge oder was auch immer Ihre "Kein Wert" Bedingung ist ersetzen.

    
Jason 25.04.2012 20:30
quelle
0

Sehen Sie sich LINQKIT Ссылка an. Sie können dann ein Prädikat erstellen

Hier ist ein Code, den ich benutze, aber lese die obige Dokumentation. Das Prädikat ermöglicht es Ihnen, eine Menge von OR oder AND oder eine Kombination daraus zusammenzufassen.

%Vor%     
atbebtg 25.04.2012 22:50
quelle

Tags und Links