Die beste Methode zum Erstellen einer dynamischen LINQ-Abfrage

7

Hi Ich suche nach der besten Methode zum Schreiben einer dynamischen LINQ-Abfrage.

Ich habe eine Funktion wie

%Vor%

Wir können auch db.Students.where (Prädikat)

schreiben

oder

eine Abfrage wie

%Vor%

Also wird diese Methode funktionieren, wenn ich ID (d. h. Null) nicht überlasse? ist der richtige Weg für alle Datentypen?

Die Punkt-Funktion kann alle Null-Werte als Parameter für die Äquivalenz von select * from-Anweisungen haben.

kann mir jemand helfen, die beste Abfrage mit Beispielcode zu erstellen?

    
Vikas 10.04.2009, 07:23
quelle

1 Antwort

20

Okay, es ist nicht ganz klar, was Sie wollen, aber wenn Sie nur where-Klauseln für die Parameter hinzufügen möchten, die nicht null sind, könnten Sie Folgendes tun:

%Vor%

Ich habe das nicht versucht, und es ist möglich , dass LINQ to SQL vom Code verwirrt wird, um den Wert der Nullwerttypen zu finden. Sie müssen möglicherweise Code wie folgt schreiben:

%Vor%

Es lohnt sich aber, zuerst die einfachere Form auszuprobieren:)

Natürlich wird das alles ein bisschen irritierend. Eine hilfreiche Erweiterungsmethode könnte das Leben prägnanter machen:

%Vor%

Sie würden es dann so verwenden:

%Vor%

Die Verwendung einer Funktion höherer Ordnung wie dieser kann verwirrend sein, wenn Sie sich nicht wirklich damit auskennen. Wenn Sie also nicht so viele Abfragen wie diese durchführen, sollten Sie sich an den längeren, aber einfacheren Code halten.

    
Jon Skeet 10.04.2009, 07:35
quelle

Tags und Links