Outils LINQ to SQL dans Visual StudioLINQ to SQL tools in Visual Studio

LINQ to SQL a été la première technologie de mapping objet-relationnel publiée par Microsoft.LINQ to SQL was the first object-relational mapping technology released by Microsoft. Il 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.It works well in basic scenarios and continues to be supported in Visual Studio, but it's no longer under active development. Utiliser LINQ to SQL lors de la mise à jour 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's 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 des classes qui représentent des tables SQL à l’aide de la 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/R 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 O/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 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/R fournit une aire de conception visuelle pour la création de LINQ to SQL classes d’entité et les associations (relations) qui sont basées sur des objets dans une base de données.The O/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/R crée un modèle d’objet dans une application qui est mappé à des objets dans une base de données.In other words, the O/R Designer creates an object model in an application that maps to objects in a database. Il génère également un fortement typée DataContext qui envoie et reçoit des données entre les classes d’entité et de la base de données.It also generates a strongly-typed DataContext that sends and receives data between the entity classes and the database. Le Concepteur O/R également fournit des fonctionnalités permettant de mapper des procédures stockées et des fonctions aux DataContext méthodes afin de retourner des données et remplir des classes d’entité.The O/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/R offre la possibilité de conception les relations d’héritage entre classes d’entité.Finally, the O/R Designer provides the ability to design inheritance relationships between entity classes.

Ouvrez le Concepteur O/ROpen the O/R designer

Pour ajouter un LINQ à SQL entity model à votre projet, choisissez projet > ajouter un nouvel élément, puis sélectionnez 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 select LINQ to SQL Classes from the list of project items:

Classes LINQ to SQL

Visual Studio crée un .dbml de fichier 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 connexes.This is the XML mapping file and its related code files.

Classes LINQ to SQL dans l’Explorateur de solutions

Lorsque vous sélectionnez le .dbml de fichiers, Visual Studio affiche la Concepteur O/R surface 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 après Northwind Customers et Orders tables ont été déplacés de 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 SQL

Important

Le Concepteur O/R est un mappeur relationnel objet simple, car il prend en charge uniquement les relations de mappage 1:1.The O/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 pris en charge ; utiliser 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 sont pas répercutées dans le Concepteur O/R.Manual changes to the code file are not reflected in the O/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/R, consultez Comment : étendre le code généré par le Concepteur O/R.For information about how to add user code and extend the classes generated by the O/R Designer, see How to: Extend code generated by the O/R Designer.

Créer et configurer le DataContextCreate and configure the DataContext

Après avoir ajouté un Classes LINQ to SQL élément à un projet et ouvert le Concepteur O/R, 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 O/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 glissé sur 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 DataContext, méthodes (Concepteur O/R).For more information about the DataContext class see, DataContext methods (O/R Designer).

Créer des classes d’entité qui mappent aux tables de base de données et des vuesCreate entity classes that map to database tables and views

Vous pouvez créer des classes d’entité mappées aux tables et vues en faisant glisser des tables de base de données et les vues de Explorateur de serveurs ou Database Explorer sur le Concepteur O/R.You can create entity classes mapped to tables and views by dragging database tables and views from Server Explorer or Database Explorer onto the O/R Designer. Comme indiqué dans la section précédente, le 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é à la Concepteur O/R, vous pouvez modifier la connexion pour le DataContext.If a subsequent item that uses a different connection is added to the O/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éer des méthodes DataContext qui appellent des procédures stockées et fonctionsCreate DataContext methods that call stored procedures and functions

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

Note

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

Configurer un DataContext pour utiliser des procédures stockées pour enregistrer les données entre les classes d’entité et une base de donnéesConfigure 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 également affecter des procédures stockées qui sont utilisées pour la valeur par défaut LINQ au comportement d’exécution SQL, qui effectue des insertions, mises à jour et supprime.Additionally, you can also assign stored procedures that are used for the default LINQ to SQL runtime behavior, which 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).

L’héritage et le Concepteur O/RInheritance and the O/R designer

Comme d’autres objets, les classes LINQ to SQL peut utiliser l’héritage et être dérivée d’autres classes.Like other objects, LINQ 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/R prend en charge le concept d’héritage à table unique tel qu’il est souvent implémenté dans les systèmes relationnels.The O/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éées par le Concepteur O/R sont conçus pour une utilisation avec Language-Integrated query (LINQ).The entity classes created by the O/R Designer are designed for use with Language-Integrated query (LINQ). Pour plus d’informations, consultez Comment : demander des informations.For more information, see How to: Query for information.

Séparer le code de classe DataContext et d’entité généré dans différents espaces de nomsSeparate the generated DataContext and entity class code into different namespaces

Le Concepteur O/R fournit le contexte Namespace et Entity Namespace propriétés sur le DataContext.The O/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 le 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

Voir aussiSee also