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 EDM (Modèle de données d'entité). Pour plus d'informations sur les modèles EDM, voir Modélisation des données dans Entity Framework. 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, voir Fournisseur de données .NET Framework pour SQL Server (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 données ADO.NET spécifiques au stockage en fournissant un objet EntityConnection à un fournisseur de données et à une base de données relationnelle sous-jacents. Pour construire un objet EntityConnection, vous devez faire référence à un ensemble de métadonnées contenant les modèles et le mappage requis, ainsi qu'à un nom de fournisseur de données spécifique au stockage et à une chaîne de connexion. Une fois l'objet EntityConnection en place, les entités sont accessibles par le biais des 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, voir Procédure : générer une chaîne de connexion pour EntityConnection (Entity Framework).

Création de requêtes

Le langage Entité SQL est un dialecte SQL indépendant du stockage qui fonctionne directement avec les schémas d'entité conceptuels et qui prend en charge certaines fonctionnalités EDM, telles que l'héritage et les relations. La classe EntityCommand permet d'exécuter une commande Entité 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 spécifiques au stockage pour traduire le langage Entité SQL générique en requêtes spécifiques au stockage. Pour plus d'informations sur l'écriture de requêtes Entité SQL, voir Langage Entity SQL.

L'exemple suivant crée un objet EntityCommand et affecte un texte de requête Entité SQL à sa propriété System.Data.EntityClient.EntityCommand.CommandText. Cette requête Entité SQL demande les produits classés par prix courant à partir du 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 l'objet System.Data.EntityClient et le fournisseur de données .NET Framework sous-jacent, tel que System.Data.SqlClient.

EntityDataReader expose les résultats de l'exécution d'un objet EntityCommand sur un modèle EDM. 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. Pour plus d'informations, voir How to: Execute an Entity SQL Query Using EntityCommand(Entity Framework).

Gestion des transactions

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

Vous ne pouvez pas utiliser la syntaxe EntityCommand pour mettre à jour les données qui sont exposées via un modèle EDM (Entity Data Model) ; vous devez utiliser les services Object Services. Pour plus d'informations sur la mise à jour de données à l'aide des services Object Services, voir Procédure : gérer les transactions Object Services (Entity Framework).

Voir aussi

Autres ressources

Gestion des connexions et des transactions (Tâches Entity Framework)
ADO.NET Entity Framework
Tâches Entity Framework
Guide de référence des fonctionnalités (Entity Framework)
Object Services (Entity Framework)