Création de classes LINQ to SQL : utilisation du Concepteur O/R

Mise à jour : novembre 2007

Le Concepteur Objet/Relationnel (Concepteur O/R) permet de mapper des classes LINQ to SQL aux 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 plus d'informations sur LINQ to SQL, consultez Utilisation de LINQ dans Visual Basic Express.

Dans cette leçon, vous apprendrez comment utiliser le Concepteur O/R pour créer des classes d'entité mappées aux tables dans la base de données Northwind. Vous afficherez ensuite des données dans une application Windows Forms.

Composants requis

  • Si vous n'avez pas installé SQL Server Express Edition en même temps que Visual Basic Express, vous devez le faire avant de continuer. Les bases de données SQL Server Compact 3.5 ne sont pas prises en charge dans LINQ to SQL. 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.

  • Pour compléter cette leçon, vous devez avoir accès à la version SQL Server de l'exemple de base de données Northwind. Pour plus d'informations, consultez Comment : installer des exemples de bases de données.

Essayez !

Pour ouvrir le Concepteur O/R

  1. Dans le menu Fichier, cliquez sur Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet, dans le volet Modèles, cliquez sur Application Windows Forms, nommez le projet LINQToSQLSample, puis cliquez sur OK.

    Un nouveau projet Windows Forms s'ouvre.

  3. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

  4. Cliquez sur le modèle Classes LINQ to SQL et tapez NorthwindSample.dbml dans la zone Nom.

  5. Cliquez sur Ajouter.

    Un fichier de 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 Entités à gauche et le volet Méthodes à droite. Le volet Entités est l'aire de conception principale qui affiche les classes d'entité définies dans le fichier. Le volet Méthodes est l'aire de conception qui affiche les méthodes DataContext mappées aux procédures stockées et aux fonctions. Vous pouvez masquer le volet Méthodes en cliquant avec le bouton droit sur le Concepteur O/R, puis en cliquant sur Masquer le volet méthodes. Vous n'utiliserez pas le volet Méthodes dans cette leçon, mais vous pouvez consulter Méthodes DataContext (Concepteur O/R) pour plus d'informations à ce sujet.

Cliquez sur l'aire de conception principale et vérifiez que son nom est NorthwindSampleDataContext en regardant la propriété Nom 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 vers l'aire du Concepteur O/R. Mais vous devez d'abord établir une connexion avec la base de données. Ce processus est comparable au processus décrit à la rubrique Obtention des informations requises : connexion à une base de données existante mais, dans le cadre de cette leçon, vous utiliserez une base de données SQL Server Express.

Pour vous connecter à la base de données Northwind

  1. Dans le menu Affichage, cliquez sur Explorateur de bases de données.

    L'Explorateur de bases de données s'ouvre.

  2. Cliquez sur le bouton Se connecter à la base de données dans la barre d'outils Explorateur de bases de données.

  3. Cliquez sur Fichier de base de données Microsoft SQL Server dans la fenêtre Choisir des sources de données, puis cliquez sur Continuer.

    La boîte de dialogue Ajouter une connexion s'ouvre.

  4. 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 (SqlClient).

  5. Cliquez sur Parcourir, puis localisez et sélectionnez la base de données Northwind.mdf. Cliquez sur Ouvrir.

  6. Cliquez sur Tester la connexion pour vérifier que la connexion a été établie.

  7. 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. Des classes d'entité avec des propriétés qui mappent aux colonnes dans les tables que vous avez faites glisser à partir de l'Explorateur de bases de données sont alors crées automatiquement.

Pour créer des classes d'entité

  1. Dans l'Explorateur de bases de données, développez Northwind.mdf, puis Tables.

  2. Faites glisser Customers de l'Explorateur de bases de données vers l'aire 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 comporte des propriétés qui correspondent aux colonnes de la table Customers.

  3. Faites glisser Orders de l'Explorateur de bases de données vers l'aire du Concepteur O/R.

    La classe d'entité Order créée possède une association (relation) avec la classe d'entité Customer. Elle comporte des propriétés qui 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 objet source de données dans la fenêtre Sources de données

  1. Dans le menu Générer, cliquez sur BuildLINQToSQLSample.

  2. Dans le menu Données, cliquez sur Afficher les sources de données.

  3. Dans la fenêtre Sources de données, cliquez sur Ajouter une nouvelle source de données.

  4. Sur la page Choisir un type de source de données, cliquez sur Objet, puis sur Suivant.

  5. Développez le nœud LINQToSQLSample et localisez la classe Customer.

    Remarque :

    Si Customer n'est pas disponible, cliquez sur Annuler, générez le projet et lancez une nouvelle fois l'Assistant.

  6. 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 d'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é

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Form1, puis cliquez sur Concepteur de vues.

  2. Dans la fenêtre Sources de données, développez Customer.

  3. Cliquez sur la flèche de déroulement située à côté de CompanyName, puis cliquez sur Étiquette.

  4. Faites glisser CompanyName vers le formulaire.

    Une étiquette et une barre d'outils de navigation sont ajoutées au formulaire.

  5. Faites glisser Orders de la fenêtre Sources de données vers Form1. Placez-le sous CompanyName.

  6. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Form1, puis cliquez sur Afficher le code.

  7. Ajoutez le code suivant au formulaire, en haut de la classe Form et en dehors de toute méthode spécifique.

    Private NorthwindSampleDataContext1 As New _
        NorthwindSampleDataContext
    
  8. Créez un gestionnaire d'événements pour l'événement Form_Load en double-cliquant sur le formulaire. Ajoutez le code suivant au gestionnaire d'événements :

    CustomerBindingSource.DataSource = _
        NorthwindSampleDataContext1.Customers()
    
  9. Appuyez sur F5 pour exécuter le code.

  10. Lors de l'ouverture du formulaire, cliquez sur le bouton Déplacer vers le bas dans la barre d'outils pour faire défiler les sociétés et vérifier que les données de commande sont mises à jour afin d'afficher les commandes du client sélectionné.

Enregistrement des modifications

Lorsque vous ajoutez les contrôles au Concepteur O/R, le bouton Enregistrer les données sur la barre d'outils de navigation 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 d'enregistrement

  1. En mode Design, sélectionnez le bouton d'enregistrement dans la barre d'outils de navigation. (le bouton avec une icône représentant une disquette).

  2. Dans la fenêtre Propriétés, affectez la valeur True à la propriété Enabled.

  3. Double-cliquez sur le bouton d'enregistrement pour créer un gestionnaire d'événements et basculer vers l'éditeur de code.

  4. Ajoutez le code suivant dans le gestionnaire d'événements du bouton d'enregistrement :

    NorthwindSampleDataContext1.SubmitChanges()
    
  5. Appuyez sur F5 pour exécuter le code.

  6. Modifiez la valeur de l'un des champs Shipped Date et appuyez sur la touche TAB pour valider la modification.

  7. Cliquez sur le bouton Enregistrer les données.

  8. Fermez le formulaire.

  9. Appuyez sur F5 et vérifiez que la modification est enregistrée.

Étapes suivantes

Dans cette leçon, vous avez appris à créer des classes LINQ to SQL à l'aide du Concepteur O/R. Dans la prochaine leçon, vous allez apprendre à lier des données en utilisant une requête LINQ. Pour plus d'informations sur l'utilisation de LINQ dans une application, consultez Utilisation de LINQ dans Visual Basic Express.

Leçon suivante : Utilisation de LINQ pour lier des données à des contrôles

Voir aussi

Tâches

Stockage et accès aux données

Affichage de données liées

Procédure pas à pas : création de classes LINQ to SQL (Concepteur O/R)

Concepts

Utilisation de LINQ dans Visual Basic Express

Vue d'ensemble du Concepteur O/R

Autres ressources

Gestion de vos enregistrements : utilisation de données dans votre programme