EntityFramework Mehrere Wo

8

Ich frage mich, ob EntityFramework intelligent genug ist, um es in einer resultierenden Abfrage zu kombinieren, wenn ich nacheinander mehrere Where(...) -Methoden verwende. Sagen wir, ich habe:

%Vor%

Ist die resultierende SQL-Abfrage die gleiche wie wenn ich schreibe:

%Vor%

Gibt es hinter den Kulissen Optimierungen für mehrere Where-Klauseln?

    
Andrei 14.06.2016, 20:24
quelle

1 Antwort

5

Ja, da sind. Es ist nicht Entity Framework, das dies tut. Es ist eigentlich der Auftrag der SQL-Provider-Factory, die Abfrage für die Datenbank zu erstellen. Abhängig von der verwendeten Datenbank stammt dieser Code aus verschiedenen Quellen.

Bei MSSQL ist der Code von Microsoft und befindet sich in der Bibliothek System.Data.SqlClient . Wenn Sie Ihr Verbindungselement in Ihrer web.config betrachten, sollten Sie das Attribut "providerName" bemerken.

Innerhalb dieser Bibliothek oder ähnlicher Bibliotheken wird häufig ein rekursives Besuchermuster verwendet, um durch das definierte Expression Tree-Objektdiagramm zu navigieren, um die effizienteste mögliche Abfrage zu erzeugen.

Die Verwendung mehrerer where-Klauseln ist sehr einfach zu erkennen und zu optimieren. Der Ort, an dem diese Art von Bibliotheken Probleme hat, besteht in der Regel in tief verschachtelten Projektionen.

Sie können das von Ihrer Abfrage erzeugte SQL sehen, wenn Sie

verwenden %Vor%     
Travis J 14.06.2016, 20:30
quelle

Tags und Links