Fournisseur EntityClient pour Entity Framework

Le fournisseur EntityClient est un fournisseur de données utilisé par les applications Entity Framework pour accéder à des données décrites dans un modèle conceptuel. Pour plus d’informations sur les modèles conceptuels, consultez Modélisation et mappage. EntityClient utilise d'autres fournisseurs de données .NET Framework pour accéder à la source de données. Par exemple, EntityClient utilise le fournisseur de données .NET Framework pour SQL Server (SqlClient) lors de l'accès à une base de données SQL Server. Pour plus d’informations sur le fournisseur SqlClient, consultez SqlClient pour Entity Framework. Le fournisseur EntityClient est implémenté dans l'espace de noms System.Data.EntityClient.

Gestion des connexions

Entity Framework s’appuie sur des fournisseurs de données ADO.NET spécifiques au stockage en fournissant un EntityConnection à un fournisseur de données sous-jacent et à une base de données relationnelle. Pour construire un objet EntityConnection, vous devez référencer un ensemble de métadonnées contenant les modèles et le mappage nécessaires ainsi qu’un nom de fournisseur de données et une chaîne de connexion spécifiques au stockage. Une fois EntityConnection en place, les entités sont accessibles via les classes générées à partir du modèle conceptuel.

Vous pouvez spécifier une chaîne de connexion dans le fichier app.config.

System.Data.EntityClient comprend également la classe EntityConnectionStringBuilder. Cette classe permet aux développeurs de créer par programme des chaînes de connexion correctes du point de vue syntaxique, et d'analyser et régénérer les chaînes de connexion existantes, à l'aide des propriétés et des méthodes de la classe. Pour plus d’informations, consultez Procédure : générer une chaîne de connexion EntityConnection.

Création de requêtes

Le langage Entity SQL est un dialecte SQL indépendant du stockage, qui fonctionne directement avec les schémas d’entités conceptuels. Il prend en charge les concepts Entity Data Model tels que l’héritage et les relations. La classe EntityCommand permet d’exécuter une commande Entity SQL sur un modèle d’entité. Au moment de la construction d'objets EntityCommand, vous pouvez spécifier un nom de procédure stockée ou un texte de requête. Entity Framework utilise des fournisseurs de données de stockage pour traduire le langage Entity SQL générique en requêtes de stockage. Pour plus d’informations sur l’écriture de requêtes Entity SQL, consultez Langage Entity SQL.

L’exemple suivant crée un objet EntityCommand, et affecte un texte de requête Entity SQL à sa propriété EntityCommand.CommandText. Cette requête Entity SQL demande les produits triés en fonction du prix catalogue au modèle conceptuel. Le code suivant fait une totale abstraction du modèle de stockage.

EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT VALUE p
 FROM AdventureWorksEntities.Product AS p
 ORDER BY p.ListPrice";

Exécution de requêtes

Lorsqu’une requête est exécutée, elle est analysée et convertie en arborescence de commandes canonique. Tous les traitements ultérieurs sont exécutés sur l'arborescence de commandes. L’arborescence de commandes est le moyen de communication entre System.Data.EntityClient et le fournisseur de données .NET Framework sous-jacent, par exemple System.Data.SqlClient.

EntityDataReader expose les résultats de l'exécution d'un objet EntityCommand sur un modèle conceptuel. Pour exécuter la commande qui retourne l'objet EntityDataReader, appelez la méthode ExecuteReader. EntityDataReader implémente IExtendedDataRecord pour décrire des résultats structurés et enrichis.

Gestion des transactions

Dans Entity Framework, il existe deux modes d’utilisation des transactions : automatique et explicite. Les transactions automatiques utilisent l'espace de noms System.Transactions, tandis que les transactions explicites utilisent la classe EntityTransaction.

Pour mettre à jour les données exposées via un modèle conceptuel, consultez Guide pratique pour gérer les transactions dans Entity Framework.

Dans cette section

Procédure : Créer une chaîne de connexion EntityConnection

Procédure : Exécuter une requête qui retourne des résultats PrimitiveType

Procédure : Exécuter une requête qui retourne des résultats StructuralType

Procédure : Exécuter une requête qui retourne des résultats RefType

Procédure : Exécuter une requête qui retourne des types complexes

Procédure : Exécuter une requête qui retourne des collections imbriquées

Procédure : Exécuter une requête paramétrable Entity SQL avec EntityCommand

Procédure : Exécuter une procédure stockée paramétrable avec EntityCommand

Procédure : Exécuter une requête polymorphe

Procédure : Parcourir les relations avec l’opérateur Navigate

Voir aussi