Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
Vous pouvez utiliser le Concepteur Objet/Relationnel (Concepteur O/R) pour mapper des classes LINQ to SQL à des tables d'une base de données. Ces classes mappées sont également connues sous le nom de classes d'entité. Les propriétés d'une classe d'entité mappent aux colonnes de la table et vous pouvez lier les données à des contrôles sur un Windows Form. Pour en savoir plus sur LINQ to SQL, consultez Utilisation de LINQ en C#.
Composants requis
Si vous n'avez pas installé SQL Server Express Edition lors de l'installation de Visual C# Express, vous devez le faire avant de poursuivre. Actuellement, LINQ to SQL ne prend pas en charge les bases de données SQL Server Compact 3.5. Pour plus d'informations sur l'obtention de SQL Server Express Edition, consultez la section Obtention de SQL Server Express Edition dans Comment : installer des exemples de bases de données.
Vous devez également avoir accès à la version SQL Server de l'exemple de base de données Northwind. Pour plus d'informations sur l'obtention et l'installation de cette base de données, consultez Comment : installer des exemples de bases de données.
Ouverture du Concepteur O/R
Pour ouvrir le Concepteur O/R
Dans le menu Fichier, cliquez sur Nouveau projet.
Dans la boîte de dialogue Nouveau projet, cliquez sur Application Windows Forms, nommez le projet LINQToSQLSample, puis cliquez sur OK.
Un nouveau projet Windows Forms s'ouvre.
Dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Cliquez sur le modèle Classes LINQ to SQL et tapez NorthwindSample.dbml dans la zone Nom.
Cliquez sur Ajouter.
Un fichier Classes LINQ to SQL vide (NorthwindSample.dbml) est ajouté au projet et le Concepteur O/R s'ouvre.
Le Concepteur O/R se compose de deux aires de conception : le volet d'entités à gauche et le volet de méthodes à droite. Le volet d'entités est l'aire de conception principale qui affiche les classes d'entité définies dans le fichier. Le volet de méthodes est l'aire de conception qui affiche les méthodes DataContext mappées aux procédures stockées et aux fonctions. Pour masquer le volet de méthodes, cliquez avec le bouton droit sur le Concepteur O/R et sélectionnez Masquer le volet Méthodes. Vous n'utiliserez pas le volet de méthodes dans cette leçon, mais vous pouvez consulter Méthodes DataContext (Concepteur O/R) pour en savoir plus à ce sujet.
Cliquez sur l'aire de conception principale et vérifiez que son nom est NorthwindSampleDataContext dans la fenêtre Propriétés. Vous pouvez créer des classes d'entité en faisant glisser des tables de base de données de l'Explorateur de bases de données sur la surface du Concepteur O/R. Quoi qu'il en soit, vous devez commencer par établir une connexion avec la base de données. Ce processus est similaire à celui décrit dans Comment : se connecter à une base de données (C#), excepté que vous utiliserez dans ce cas une base de données SQL Server Express.
Pour se connecter à l'exemple de base de données Northwind
Dans le menu Affichage, pointez sur Autres fenêtres, puis cliquez sur Explorateur de bases de données.
L'Explorateur de bases de données s'ouvre.
Cliquez sur le bouton Connexion à une base de données.
La boîte de dialogue Ajouter une connexion s'ouvre.
Dans la boîte de dialogue Ajouter une connexion, assurez-vous que la source de données est Fichier de base de données Microsoft SQL Server.
Cliquez sur Parcourir et sélectionnez la base de données Northwind.mdf.
Cliquez sur le bouton Tester la connexion pour vérifier que la connexion est correctement établie.
Cliquez sur OK pour fermer la boîte de dialogue Ajouter une connexion.
Création de classes d'entité
Les tables de la base de données Northwind sont maintenant visibles dans l'Explorateur de bases de données. Vous pouvez faire glisser des tables de l'Explorateur de bases de données vers le Concepteur O/R. Cela crée automatiquement des classes d'entité avec des propriétés qui mappent aux colonnes des tables sélectionnées.
Pour créer des classes d'entité
Dans l'Explorateur de bases de données, développez Northwind.mdf, puis Tables.
Faites glisser Customers de l'Explorateur de bases de données vers la surface du Concepteur O/R. Si vous êtes invité à copier le fichier de données dans votre projet, cliquez sur Oui.
Une classe d'entité nommée Customer est créée. Elle possède des propriétés qui correspondent aux colonnes de la table Customers.
Remarque :Le nom de la classe d'entité est Customer au lieu de Customers. Ce comportement de changement de nom est appelé pluralisation. Il peut être activé ou désactivé dans la boîte de dialogue Options. Pour plus d'informations, consultez Options, boîte de dialogue (Visual Studio) et Procédure : activer et désactiver la pluralisation (Concepteur O/R).
Faites glisser Orders de l'Explorateur de bases de données vers la surface du Concepteur O/R.
Une classe d'entité nommée Order est créée. Notez que la classe Order a une relation (une association) avec la classe d'entité Customer. Les propriétés de la classe Order correspondent aux colonnes de la table Orders.
Maintenant que vous avez créé les classes d'entité, vous pouvez les ajouter à la fenêtre Sources de données en exécutant l'Assistant Configuration de source de données.
Pour ajouter une classe d'entité comme une source de données d'objet dans la fenêtre Sources de données
Dans le menu Générer, cliquez sur Générer la solution.
Dans le menu Données, cliquez sur Afficher les sources de données.
Dans la fenêtre Sources de données, cliquez sur Ajouter une nouvelle source de données.
Sur la page Choisir un type de source de données, cliquez sur Objet, puis sur Suivant.
Développez LINQToSQLSample et cliquez sur la classe Customer.
Remarque :Si Customer n'est pas disponible, cliquez sur Annuler, générez le projet et exécutez à nouveau l'Assistant.
Cliquez sur Terminer pour créer la source de données et ajouter la classe d'entité Customer à la fenêtre Sources de données.
Liaison de contrôles sur un Windows Form à des classes d'entité
Vous pouvez ajouter des contrôles correspondant à des classes d'entité à un Windows Form en faisant glisser des tables ou des champs de la fenêtre Sources de données vers le formulaire.
Pour ajouter des contrôles liés aux classes d'entité
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Form1, puis cliquez sur Concepteur de vues.
Dans la fenêtre Sources de données, développez Customer.
Cliquez sur la liste déroulante en regard de CompanyName, puis sur Étiquette.
Faites glisser CompanyName vers le formulaire.
Faites glisser Orders de la fenêtre Sources de données vers Form1. Placez-le sous CompanyName.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Form1, puis cliquez sur Afficher le code.
Ajoutez le code suivant au formulaire, en haut de la classe Form, en dehors de toute méthode spécifique.
private NorthwindSampleDataContext northwindSampleDataContext1 = new NorthwindSampleDataContext();Créez un gestionnaire d'événements pour l'événement Form_Load et ajoutez le code suivant au gestionnaire :
customerBindingSource.DataSource = northwindSampleDataContext1.Customers;Appuyez sur F5 pour exécuter le code.
Lorsque le formulaire s'ouvre, cliquez sur le bouton bindingNavigatorMoveNextItem pour faire défiler les sociétés et vérifier que le ordersDataGridView est mis à jour pour afficher les commandes du client sélectionné.
Enregistrement des modifications
Lorsque vous ajoutez des contrôles au Concepteur O/R, le bouton Enregistrer du BindingNavigator n'est pas activé. Pour autoriser les utilisateurs à enregistrer les modifications, vous devez d'abord activer le bouton Enregistrer, puis ajouter du code pour enregistrer les données modifiées.
Pour activer le bouton Enregistrer
Cliquez sur le bouton Enregistrer sur le BindingNavigator (le bouton avec une icône représentant une disquette).
Dans la fenêtre Propriétés, affectez la valeur True à la propriété Enabled.
Double-cliquez sur le bouton d'enregistrement pour créer un gestionnaire d'événements et basculer vers l'éditeur de code.
Ajoutez le code suivant au gestionnaire d'événements du bouton Enregistrer :
northwindSampleDataContext1.SubmitChanges();Appuyez sur F5 pour exécuter le code.
Modifiez la valeur de l'un des champs Date d'expédition et appuyez sur la touche TABULATION pour valider la modification.
Cliquez sur le bouton Enregistrer.
Fermez le formulaire.
Appuyez sur F5 et vérifiez que la modification a été enregistrée.
Voir aussi
Tâches
Comment : se connecter à une base de données (C#)
Comment : afficher des données liées sur un formulaire
Comment : lier des données aux requêtes LINQ