Procédure pas à pas : création de classes LINQ to SQL à l'aide d'un héritage de table individuelle (Concepteur O/R)Walkthrough: Creating LINQ to SQL Classes by Using Single-Table Inheritance (O/R Designer)

Le LINQ to SQL Tools dans Visual Studio prend en charge l’héritage à table unique tel qu’il est généralement implémenté dans les systèmes relationnels.The LINQ to SQL Tools in Visual Studio supports single-table inheritance as it is typically implemented in relational systems. Cette procédure pas à pas développe les étapes génériques fournis dans le Comment : configurer l’héritage à l’aide du Concepteur O/R rubrique et fournit des données réelles pour illustrer l’utilisation de l’héritage dans le Concepteur O/RO/R Designer.This walkthrough expands upon the generic steps provided in the How to: Configure inheritance by using the O/R Designer topic and provides some real data to demonstrate the use of inheritance in the Concepteur O/RO/R Designer.

Au cours de cette procédure, vous exécuterez les tâches suivantes :During this walkthrough, you will perform the following tasks:

  • Créer une table de base de données et ajouter des données.Create a database table and add data to it.

  • Créer une application Windows Forms.Create a Windows Forms application.

  • Ajouter un fichier LINQ to SQLLINQ to SQL à un projet.Add a LINQ to SQLLINQ to SQL file to a project.

  • Créer de nouvelles classes d'entité.Create new entity classes.

  • Configurer les classes d'entité pour utiliser l'héritage.Configure the entity classes to use inheritance.

  • Interroger la classe héritée.Query the inherited class.

  • Afficher les données sur un Windows Form.Display the data on a Windows Form.

Création d'une table de laquelle hériterCreate a Table to Inherit From

Pour voir comment l'héritage fonctionne, vous allez créer une petite table Personnel que vous utiliserez comme classe de base, puis un objet Employé qui héritera de cette classe.To see how inheritance works, you will create a small Person table, use it as a base class, and then create an Employee object that inherits from it.

Pour créer une table de base illustrant l'héritageTo create a base table to demonstrate inheritance

  1. Dans l’Explorateur de serveurs/l’Explorateur de base de données, avec le bouton droit le Tables nœud et cliquez sur ajouter une nouvelle Table.In Server Explorer/Database Explorer, right-click the Tables node and click Add New Table.

    Note

    Vous pouvez utiliser la base de données Northwind ou toute autre base de données à laquelle vous pouvez ajouter une table.You can use the Northwind database or any other database that you can add a table to.

  2. Dans le Concepteur de tables, ajoutez les colonnes suivantes à la table :In the Table Designer, add the following columns to the table:

    Nom de la colonneColumn Name Type de donnéesData Type Null autoriséAllow Nulls
    IDID intint FalseFalse
    TypeType intint TrueTrue
    PrénomFirstName nvarchar(200)nvarchar(200) FalseFalse
    LastNameLastName nvarchar(200)nvarchar(200) FalseFalse
    GestionnaireManager intint TrueTrue
  3. Définissez la colonne d'ID comme clé primaire.Set the ID column as the primary key.

  4. Enregistrez la table et nommez-la personne.Save the table and name it Person.

Ajout de données à la tableAdd Data to the Table

Pour pouvoir vérifier si l'héritage est configuré correctement, la table a besoin de données dans chaque classe de l'héritage à table unique.So that you can verify that inheritance is configured correctly, the table needs some data for each class in the single-table inheritance.

Pour ajouter des données à la tableTo add data to the table

  1. Ouvrez la table dans la vue de données.Open the table in data view. (Avec le bouton droit le personne table l’Explorateur de serveurs/l’Explorateur de base de données et cliquez sur afficher les données de Table.)(Right-click the Person table in Server Explorer/Database Explorer and click Show Table Data.)

  2. Copiez les données suivantes dans la table.Copy the following data into the table. (Vous pouvez copier et coller ensuite dans la table en sélectionnant la ligne entière dans le volet de résultats.)(You can copy it and then paste it into the table by selecting the whole row in the Results Pane.)

    IDID TypeType PrénomFirstName LastNameLastName GestionnaireManager
    11 11 AnneAnne WallaceWallace NULLNULL
    22 11 CarlosCarlos GriloGrilo NULLNULL
    33 11 YaelYael PeledPeled NULLNULL
    44 22 GatisGatis OzolinsOzolins 11
    55 22 AndreasAndreas ChorHauser 11
    66 22 TiffanyTiffany PhuvasatePhuvasate 11
    77 22 AlexeyAlexey OrekhovOrekhov 22
    88 22 MichałMichał PoliszkiewiczPoliszkiewicz 22
    99 22 FinTai Yee 22
    1010 22 FabricioFabricio NoriegaNoriega 33
    1111 22 KonstantinosMindy MartinMartin 33
    1212 22 KenKen KwokKwok 33

Création d'un projetCreate a New Project

Maintenant que vous avez créé la table, créez un nouveau projet pour voir la configuration de l'héritage.Now that you have created the table, create a new project to demonstrate configuring inheritance.

Pour créer la nouvelle Application Windows FormsTo create the new Windows Forms Application

  1. Dans Visual Studio, sur le fichier menu, sélectionnez nouveau, projet... .In Visual Studio, on the File menu, select New, Project....

  2. Développez le Visual C# ou Visual Basic dans le volet gauche, puis sélectionnez de bureau Windows classique.Expand either Visual C# or Visual Basic in the left-hand pane, then select Windows Classic Desktop.

  3. Dans le volet central, sélectionnez le l’application Windows Forms type de projet.In the middle pane, select the Windows Forms App project type.

  4. Nommez le projet InheritanceWalkthrough, puis choisissez OK.Name the project InheritanceWalkthrough, and then choose OK.

    Le InheritanceWalkthrough projet est créé et ajouté à l’Explorateur de solutions.The InheritanceWalkthrough project is created, and added to Solution Explorer.

Ajout d'un fichier de classes LINQ to SQL au projetAdd a LINQ to SQL Classes File to the Project

Pour ajouter un fichier LINQ to SQL au projetTo add a LINQ to SQL File to the project

  1. Dans le menu Projet , cliquez sur Ajouter un nouvel élément.On the Project menu, click Add New Item.

  2. Cliquez sur le Classes LINQ to SQL modèle, puis cliquez sur ajouter.Click the LINQ to SQL Classes template and then click Add.

    Le fichier .dbml est ajouté au projet et le Concepteur O/RO/R Designer s'ouvre.The .dbml file is added to the project and the Concepteur O/RO/R Designer opens.

Création de l'héritage avec le Concepteur O/RCreate the Inheritance by Using the O/R Designer

Configurez l’héritage en faisant glisser un héritage de l’objet à partir de la boîte à outils sur l’aire de conception.Configure the inheritance by dragging an Inheritance object from the Toolbox onto the design surface.

Pour créer l'héritageTo create the inheritance

  1. Dans l’Explorateur de serveurs/l’Explorateur de base de données, accédez à la personne table que vous avez créé précédemment.In Server Explorer/Database Explorer, navigate to the Person table that you created earlier.

  2. Faites glisser le personne table sur le Concepteur O/RO/R Designer aire de conception.Drag the Person table onto the Concepteur O/RO/R Designer design surface.

  3. Faites glisser un deuxième personne table sur le Concepteur O/RO/R Designer et remplacez son nom par employé.Drag a second Person table onto the Concepteur O/RO/R Designer and change its name to Employee.

  4. Supprimer le Manager propriété à partir de la personne objet.Delete the Manager property from the Person object.

  5. Supprimer le Type, ID, FirstName, et LastName propriétés à partir de la employé objet.Delete the Type, ID, FirstName, and LastName properties from the Employee object. (En d’autres termes, supprimez toutes les propriétés à l’exception de Manager.)(In other words, delete all properties except for Manager.)

  6. À partir de la concepteur objet/relationnel onglet de la boîte à outils, créer un héritage entre les personne et Employé objets.From the Object Relational Designer tab of the Toolbox, create an Inheritance between the Person and Employee objects. Pour ce faire, cliquez sur le héritage d’élément dans le boîte à outils et relâchez le bouton de la souris.To do this, click the Inheritance item in the Toolbox and release the mouse button. Ensuite, cliquez sur le employé objet, puis le personne de l’objet dans le Concepteur O/RO/R Designer.Next, click the Employee object and then the Person object in the Concepteur O/RO/R Designer. La flèche sur la ligne d’héritage pointe sur le personne objet.The arrow on the inheritance line will point to the Person object.

  7. Cliquez sur le héritage ligne sur l’aire de conception.Click the Inheritance line on the design surface.

  8. Définir le propriété de discriminateur propriété Type.Set the Discriminator Property property to Type.

  9. Définir le valeur de discriminateur de classe dérivée propriété 2.Set the Derived Class Discriminator Value property to 2.

  10. Définir le valeur de discriminateur de classe de Base propriété 1.Set the Base Class Discriminator Value property to 1.

  11. Définir le d’héritage par défaut propriété personne.Set the Inheritance Default property to Person.

  12. Générez le projet.Build the project.

Interrogation de la classe héritée et affichage des données sur le formulaireQuery the Inherited Class and Display the Data on the Form

Vous ajouterez maintenant du code au formulaire qui interroge une classe spécifique dans le modèle objet.You will now add some code to the form that queries for a specific class in the object model.

Pour créer une requête LINQ et afficher les résultats sur le formulaireTo create a LINQ query and display the results on the form

  1. Faites glisser un ListBox vers Form1.Drag a ListBox onto Form1.

  2. Double-cliquez sur le formulaire pour créer un gestionnaire d'événements Form1_Load.Double-click the form to create a Form1_Load event handler.

  3. Ajoutez le code suivant au gestionnaire d'événements Form1_Load :Add the following code to the Form1_Load event handler:

    Dim dc As New DataClasses1DataContext
    Dim results = From emp In dc.Persons _
        Where TypeOf emp Is Employee _
        Select emp
    
    For Each Emp As Employee In results
        ListBox1.Items.Add(Emp.LastName)
    Next
    
    NorthwindDataContext dc = new DataClasses1DataContext();
    var results = from emp in dc.Persons
                  where emp is Employee
                  select emp;
    
    foreach(Employee Emp in results)
    {
        listBox1.Items.Add(Emp.LastName)
    }
    

Test de l'applicationTest the Application

Exécutez l'application et vérifiez que les enregistrements affichés dans la zone de liste sont tous des employés (enregistrements qui ont une valeur 2 dans leur colonne de type).Run the application and verify that the records displayed in the list box are all employees (records that have a value of 2 in their Type column).

Pour tester l'applicationTo test the application

  1. Appuyez sur F5.Press F5.

  2. Vérifiez que seuls les enregistrements qui ont une valeur 2 dans leur colonne de type sont affichés.Verify that only records that have a value of 2 in their Type column are displayed.

  3. Fermez le formulaire.Close the form. (Sur le déboguer menu, cliquez sur arrêter le débogage.)(On the Debug menu, click Stop Debugging.)

Voir aussiSee also