Share via


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

Form der Befehlsstrukturen

Generieren von SQL aus Befehlsstrukturen – Best Practices

SQL-Generierung im Beispielanbieter

Siehe auch

Konzepte

Schreiben eines Entity Framework-Datenanbieters