Génération SQL
Lorsque vous écrivez un fournisseur pour Entity Framework , vous devez traduire des arborescences de commandes Entity Framework dans un langage SQL qu'une base de données spécifique puisse comprendre, tel que Transact-SQL pour SQL Server ou PL/SQL pour Oracle. Dans cette section, vous allez apprendre à développer un composant de génération SQL (pour les requêtes SELECT) pour un fournisseur Entity Framework . Pour plus d'informations sur les requêtes d'insertion, de mise à jour et de suppression, consultez Génération SQL de modification.
Pour comprendre cette section, vous devez être familiarisé avec Entity Framework et le modèle de fournisseur ADO.NET. Vous devez également comprendre les arborescences de commandes et les DbExpression.
Rôle du module de génération SQL
Le module de génération SQL d'un fournisseur Entity Framework traduit une arborescence de commandes d'une requête donnée en instruction SQL SELECT unique qui cible une base de données conforme SQL:1999. Le SQL généré doit avoir aussi peu de requêtes imbriquées que possible. Le module de génération SQL ne doit pas simplifier l'arborescence de commandes de requête de sortie. Entity Framework le fera, par exemple en éliminant des jointures et en réduisant des nœuds de filtre consécutifs.
La classe DBProviderServices est le point de départ permettant d'accéder à la couche de génération SQL pour convertir des arborescences de commandes en DbCommands.
Dans cette section
Forme des arborescences de commandes
Génération SQL à partir d'arborescences de commandes - meilleures pratiques
Génération SQL dans le Fournisseur d'exemples