LINQ to SQL des outils dans Visual StudioLINQ to SQL Tools in Visual Studio

LINQ to SQL a été la première technologie de mappage relationnel objet publiée par Microsoft.LINQ to SQL was the first object-relational mapping technology released by Microsoft. Elle fonctionne bien dans les scénarios de base et continue à être pris en charge dans Visual Studio, mais il n’est plus en cours de développement actif.It works well in basic scenarios and continues to be supported in Visual Studio, but it is no longer under active development. Utilisez LINQ SQL lors de la gestion d’une application héritée qui utilise déjà, ou dans des applications simples qui utilisent SQL Server et ne nécessitent pas de mappage de plusieurs table.Use LINQ to SQL when maintaining a legacy application that is already using it, or in simple applications that use SQL Server and do not require multi-table mapping. En règle générale, les nouvelles applications doivent utiliser Entity Framework lorsqu’une couche de Mappeur objet / relationnel est requise.In general, new applications should use the Entity Framework when an object-relational mapper layer is required.

Dans Visual Studio, vous créez LINQ to SQL classes qui représentent des tables SQL à l’aide du concepteur objet/relationnel (Concepteur O/R).In Visual Studio, you create LINQ to SQL classes that represent SQL tables by using the Object Relational Designer (O/R Designer).

Le Concepteur O/RO/R Designer a deux zones distinctes sur son aire de conception : le volet d’entités sur la gauche et le volet de méthodes sur la droite.The Concepteur O/RO/R Designer has two distinct areas on its design surface: the entities pane on the left, and the methods pane on the right. Le volet d'entités est l'aire de conception principale qui affiche les classes d'entité, associations et hiérarchies d'héritage.The entities pane is the main design surface that displays the entity classes, associations, and inheritance hierarchies. Le volet de méthodes est l’aire de conception qui affiche le DataContext les méthodes qui sont mappées aux procédures stockées et fonctions.The methods pane is the design surface that displays the DataContext methods that are mapped to stored procedures and functions.

Le Concepteur O/RO/R Designer fournit une aire de conception visuelle pour la création de LINQ to SQL des classes d’entité et les associations (relations) qui sont basées sur des objets dans une base de données.The Concepteur O/RO/R Designer provides a visual design surface for creating LINQ to SQL entity classes and associations (relationships) that are based on objects in a database. En d'autres termes, le Concepteur O/RO/R Designer est utilisé pour créer, dans une application, un modèle objet qui effectue un mappage aux objets d'une base de données.In other words, the Concepteur O/RO/R Designer is used to create an object model in an application that maps to objects in a database. Il génère également un DataContext fortement typé utilisé pour envoyer et recevoir des données entre les classes d'entité et la base de données.It also generates a strongly-typed DataContext that is used to send and receive data between the entity classes and the database. Le Concepteur O/RO/R Designer fournit également des fonctionnalités permettant de mapper des procédures stockées et des fonctions aux méthodes DataContext afin de retourner des données et de remplir des classes d'entité.The Concepteur O/RO/R Designer also provides functionality to map stored procedures and functions to DataContext methods for returning data and populating entity classes. Enfin, le Concepteur O/RO/R Designer donne la possibilité de concevoir des relations d'héritage entre des classes d'entité.Finally, the Concepteur O/RO/R Designer provides the ability to design inheritance relationships between entity classes.

Ouverture du Concepteur O/ROpening the O/R Designer

Pour ajouter un LINQ to SQL entity model à votre projet, choisissez projet, ajouter un nouvel élément , puis Classes LINQ to SQL dans la liste des éléments de projet :To add a LINQ to SQL entity model to your project, choose Project, Add New Item and then choose LINQ to SQL Classes from the list of project items:

Classes LINQ to SQLLINQ to SQL Classes

Visual Studio crée un fichier .dbml et l’ajoute à votre solution.Visual Studio creates a .dbml file and adds it to your solution. C’est le fichier de mappage XML et ses fichiers de code associé.This is the XML mapping file and its related code files.

Des classes LINQ to SQL dans l’Explorateur de solutionsLINQ to SQL classes in Solution Explorer

Lorsque vous sélectionnez le fichier .dbml, Visual Studio affiche l’aire du Concepteur O/R qui vous permet de créer visuellement le modèle.When you select the .dbml file, Visual Studio shows the O/R designer surface that enables you to visually create the model. L’illustration suivante montre le concepteur une fois que les tables Northwind Customers et Orders ont été déplacés à partir de l’Explorateur de serveurs.The following illustration shows the designer after the Northwind Customers and Orders tables have been dragged from Server Explorer. Notez la relation entre les tables.Note the relationship between the tables.

Concepteur LINQ to SQLLINQ to SQL Designer

Important

Le Concepteur O/RO/R Designer est un mappeur relationnel objet simple, car il prend en charge que les relations de mappage 1:1.The Concepteur O/RO/R Designer is a simple object relational mapper because it supports only 1:1 mapping relationships. En d'autres termes, une classe d'entité peut uniquement avoir une relation de mappage 1:1 avec une table ou une vue de base de données.In other words, an entity class can have only a 1:1 mapping relationship with a database table or view. Le mappage complexe, tel que le mappage d’une classe d’entité à une table jointe, n’est pas prise en charge ; utilisez Entity Framework pour le mappage complex.Complex mapping, such as mapping an entity class to a joined table, is not supported; use the Entity Framework for complex mapping. En outre, le concepteur est un générateur de code unidirectionnel.Additionally, the designer is a one-way code generator. Cela signifie que seules les modifications apportées à l'aire du concepteur sont répercutées dans le fichier de code.This means that only changes that you make to the designer surface are reflected in the code file. Les modifications manuelles au fichier de code ne se sont pas répercutées dans le Concepteur O/RO/R Designer.Manual changes to the code file are not reflected in the Concepteur O/RO/R Designer. Les modifications apportées manuellement dans le fichier de code sont remplacées lorsque le concepteur est enregistré et le code régénéré.Any changes that you make manually in the code file are overwritten when the designer is saved and code is regenerated. Pour plus d’informations sur la façon d’ajouter le code utilisateur et d’étendre les classes générées par le Concepteur O/RO/R Designer, consultez Comment : étendre Code généré par le Concepteur O/R.For information about how to add user code and extend the classes generated by the Concepteur O/RO/R Designer, see How to: Extend Code Generated by the O/R Designer.

Création et configuration du DataContextCreating and Configuring the DataContext

Après avoir ajouté un Classes LINQ to SQL élément à un projet et ouvrez le Concepteur O/RO/R Designer, l’aire de conception vide représente vide DataContext prêt à être configuré.After you add a LINQ to SQL Classes item to a project and open the Concepteur O/RO/R Designer, the empty design surface represents an empty DataContext ready to be configured. le DataContext est configuré avec les informations de connexion fournies par le premier élément qui est déplacé vers l’aire de conception...the DataContext is configured with connection information provided by the first item that is dragged onto the design surface.. Par conséquent, le DataContext est configuré à l’aide des informations de connexion à partir du premier élément déposé sur l’aire de conception.Therefore, the DataContext is configured by using connection information from the first item dropped onto the design surface. Pour plus d’informations sur la DataContext , consultez classe des méthodes DataContext (Concepteur O/R).For more information about the DataContext class see, DataContext Methods (O/R Designer).

Création des classes d'entité qui mappent aux tables et vues de base de donnéesCreating Entity Classes That Map to Database Tables and Views

Vous pouvez créer des classes d’entité mappées aux tables et des vues en faisant glisser des tables de base de données et des vues de l’Explorateur de serveurs/l’Explorateur de base de données sur la Concepteur O/RO/R Designer.You can create entity classes mapped to tables and views by dragging database tables and views from Server Explorer/Database Explorer onto the Concepteur O/RO/R Designer. Comme indiqué dans la section précédente, DataContext est configuré avec les informations de connexion fournies par le premier élément glissé sur l'aire de conception.As indicated in the previous section the DataContext is configured with connection information provided by the first item that is dragged onto the design surface. Si un élément suivant qui utilise une connexion différente est ajouté au Concepteur O/RO/R Designer, vous pouvez modifier la connexion pour le DataContext.If a subsequent item that uses a different connection is added to the Concepteur O/RO/R Designer, you can change the connection for the DataContext. Pour plus d’informations, consultez Comment : créer des classes LINQ to SQL mappées aux tables et vues (Concepteur O/R).For more information, see How to: Create LINQ to SQL classes mapped to tables and views (O/R Designer).

Création des méthodes DataContext qui appellent des procédures stockées et des fonctionsCreating DataContext Methods That Call Stored Procedures and Functions

Vous pouvez créer DataContext des méthodes qui appellent (sont mappées à) fonctions et procédures stockées en les faisant glisser à partir de l’Explorateur de serveurs/l’Explorateur de base de données sur le Concepteur O/RO/R Designer.You can create DataContext methods that call (are mapped to) stored procedures and functions by dragging them from Server Explorer/Database Explorer onto the Concepteur O/RO/R Designer. Les procédures stockées et fonctions sont ajoutées au Concepteur O/RO/R Designer comme méthodes du DataContext.Stored procedures and functions are added to the Concepteur O/RO/R Designer as methods of the DataContext.

Note

Lorsque vous faites glisser des procédures stockées et des fonctions de l’Explorateur de serveurs/l’Explorateur de base de données sur la Concepteur O/RO/R Designer, le type de retour généré DataContext diffère de la méthode selon l’endroit où vous déposez l’élément.When you drag stored procedures and functions from Server Explorer/Database Explorer onto the Concepteur O/RO/R Designer, the return type of the generated DataContext method differs depending on where you drop the item. Pour plus d’informations, consultez des méthodes DataContext (Concepteur O/R).For more information, see DataContext Methods (O/R Designer).

Configuration d'un DataContext pour utiliser des procédures stockées afin d'enregistrer les données entre des classes d'entité et une base de donnéesConfiguring a DataContext to Use Stored Procedures to Save Data Between Entity Classes and a Database

Comme mentionné précédemment, vous pouvez créer des méthodes DataContext qui appellent des procédures stockées et des fonctions.As stated earlier, you can create DataContext methods that call stored procedures and functions. En outre, vous pouvez assigner des procédures stockées qui peuvent être utilisées pour le comportement au moment de l'exécution par défaut de LINQ to SQLLINQ to SQL qui effectue les insertions, les mises à jour et les suppressions.Additionally, you can also assign stored procedures that can be used for the default LINQ to SQLLINQ to SQL runtime behavior that performs Inserts, Updates, and Deletes. Pour plus d’informations, consultez Comment : assigner des procédures stockées pour effectuer des mises à jour, insertions et suppressions (Concepteur O/R).For more information, see How to: Assign stored procedures to perform updates, inserts, and deletes (O/R Designer).

Héritage et le Concepteur O/RInheritance and the O/R Designer

Comme d'autres objets, les classes LINQ to SQLLINQ to SQL peuvent utiliser l'héritage et être dérivées d'autres classes.Like other objects, LINQ to SQLLINQ to SQL classes can use inheritance and be derived from other classes. Dans une base de données, les relations d'héritage sont créées de plusieurs façons.In a database, inheritance relationships are created in several ways. Le Concepteur O/RO/R Designer prend en charge le concept d'héritage à table unique tel qu'il est souvent implémenté dans les systèmes relationnels.The Concepteur O/RO/R Designer supports the concept of single-table inheritance as it is often implemented in relational systems. Pour plus d’informations, consultez Comment : configurer l’héritage à l’aide du Concepteur O/R.For more information, see How to: Configure inheritance by using the O/R Designer.

Requêtes LINQ to SQLLINQ to SQL Queries

Les classes d’entité créés par le Concepteur O/RO/R Designer sont conçus pour une utilisation avec LINQ (Language-Integrated Query).The entity classes created by the Concepteur O/RO/R Designer are designed for use with LINQ (Language-Integrated Query). Pour plus d’informations, consultez Comment : demander des informations.For more information, see How to: Query for Information.

Séparation du GeneratedDataContext et du code de classe d'entité dans des espaces de noms différentsSeparating the Generated DataContext and Entity Class Code into Different Namespaces

Le Concepteur O/RO/R Designer fournit le contexte Namespace et Entity Namespace propriétés sur le DataContext.The Concepteur O/RO/R Designer provides the Context Namespace and Entity Namespace properties on the DataContext. Ces propriétés déterminent dans quel espace de noms le DataContext et le code de classe entité est généré.These properties determine what namespace the DataContext and entity class code is generated into. Par défaut, ces propriétés sont vides, les DataContext et les classes d'entité étant générés dans l'espace de noms de l'application.By default, these properties are empty and the DataContext and entity classes are generated into the application's namespace. Pour générer le code dans un espace de noms autre que de l’espace de noms de l’application, entrez une valeur dans la contexte Namespace et/ou Entity Namespace propriétés.To generate the code into a namespace other than the application's namespace, enter a value into the Context Namespace and/or Entity Namespace properties.

Contenu de référenceReference content

System.Linq
System.Data.Linq

Voir aussiSee also

LINQ to SQL (.NET Framework) LINQ to SQL (.NET Framework)
Forum aux Questions (.NET Framework)Frequently Asked Questions (.NET Framework)