Vue d'ensemble de LINQ to Entities

La plupart des applications de gestion sont actuellement écrites pour accéder aux données contenues dans des bases de données relationnelles. À un certain moment, ces applications devront interagir avec les données représentées sous forme relationnelle. Le modèle relationnel est optimisé pour un traitement et une récupération efficaces, et non pour la modélisation conceptuelle utilisée dans la programmation orientée objet. Plusieurs tables normalisées correspondent souvent à une seule classe, et les relations entre les classes ne sont pas représentées de la même façon que les relations entre les tables. Les développeurs d'applications d'entreprise doivent souvent utiliser deux langages de programmation (ou plus) : un langage de haut niveau pour la logique métier et les couches de présentation (tel que Visual C# ou Visual Basic) et un langage de requête pour interagir avec la base de données (tel que Transact-SQL). Pour être efficace, le développeur doit être expert en plusieurs langages, et cela peut entraîner des incompatibilités dans l'environnement de développement. Par exemple, une application qui utilise une API d'accès aux données pour exécuter une requête sur une base de données spécifie la requête sous la forme d'un littéral de chaîne en utilisant des guillemets. Cette chaîne de requête est opaque pour le compilateur et elle ne fait l'objet d'aucun contrôle d'erreur pour vérifier sa syntaxe ou l'existence des colonnes ou lignes auxquelles elle fait référence. Il n'y a aucune vérification du type des paramètres de requête, ni aucune prise en charge d'IntelliSense.

Entity Framework permet aux développeurs de travailler avec des données sous la forme de propriétés et d'objets spécifiques aux domaines, tels que des clients et des adresses de clients, sans qu'il soit nécessaire de se préoccuper des tables et des colonnes de base de données sous-jacentes dans lesquelles sont stockées ces données. Pour plus d'informations, voir Entity Data Model. LINQ permet aux développeurs de formuler des requêtes basées sur des ensembles dans leur code d'application, sans avoir à utiliser un langage de requête séparé. Via l'infrastructure Object Services de Entity Framework, ADO.NET expose une vue conceptuelle courante des données, y compris les données relationnelles, sous forme d'objets dans l'environnement .NET. Cela fait de la couche objet une cible idéale pour la prise en charge de LINQ. Cette technologie LINQ, LINQ to Entities, permet aux développeurs de créer des requêtes flexibles fortement typées sur le contexte de l'objet Entity Framework en utilisant des expressions LINQ et les opérateurs de requête standard LINQ directement à partir de l'environnement de développement. Les requêtes sont exprimées dans le langage de programmation lui-même et non pas en tant que littéraux de chaîne incorporés dans le code de l'application, comme cela est communément le cas dans les applications écrites dans Microsoft .NET Framework version 2.0. Les erreurs de syntaxe ainsi que les erreurs dans les noms de membres et les types de données seront détectées par le compilateur et signalées au moment de la compilation, ce qui réduit le risque de problèmes de type entre Modèle de données d'entité et l'application.

Les requêtes LINQ to Entities utilisent l'infrastructure Object Services. La classe ObjectContext est la classe principale d'interaction avec un modèle EDM (Modèle de données d'entité) sous forme d'objets CLR. Le développeur construit une instance générique de ObjectQuery à l'aide de l'objet ObjectContext. La classe générique ObjectQuery représente une requête qui retourne une instance ou une collection d'entités typées. Les objets entité retournés, qui peuvent être mis à jour, se trouvent dans le contexte de l'objet. Cela est également vrai pour les objets entité qui sont retournés en tant que membres de types anonymes.

Dans cette section

Voir aussi

Autres ressources

LINQ to Entities