SQL-Generierung
Wenn Sie einen Anbieter für Entity Framework schreiben, müssen Sie Entity Framework -Befehlsstrukturen in SQL übersetzen, das eine bestimmte Datenbank verstehen kann, z. B. Transact-SQL für SQL Server oder PL/SQL für Oracle. In diesem Abschnitt erfahren Sie, wie eine SQL-Generierungskomponente (für SELECT-Abfragen) für einen Entity Framework -Anbieter entwickelt wird. Informationen zu Einfügungs-, Update- und Löschabfragen finden Sie unter Generierung von Änderungen in SQL.
Um diesen Abschnitt zu verstehen, sollten Sie mit dem Entity Framework - und dem ADO.NET-Anbietermodell vertraut sein. Außerdem sollten Sie Befehlsstrukturen und DbExpression verstehen.
Die Rolle des SQL-Generierungsmoduls
Das SQL-Generierungsmodul eines Entity Framework -Anbieters übersetzt eine angegebene Abfragebefehlsstruktur in eine einzelne SQL SELECT-Anweisung, die für eine SQL:1999-kompatible Datenbank vorgesehen ist. Das generierte SQL sollte so wenige geschachtelte Abfragen wie möglich enthalten. Das SQL-Generierungsmodul sollte die Ausgabeabfrage-Befehlsstruktur nicht vereinfachen. Entity Framework führt dies beispielsweise durch das Eliminieren von Joins und das Reduzieren von aufeinander folgenden Filterknoten aus.
Die DBProviderServices-Klasse ist der Ausgangspunkt für den Zugriff auf die SQL-Generierungsebene zur Umwandlung von Befehlsstrukturen in DbCommands.
In diesem Abschnitt
Generieren von SQL aus Befehlsstrukturen – Best Practices
SQL-Generierung im Beispielanbieter