Procédure pas à pas : Créer LINQ aux classes SQL à l’aide de l’héritage à table unique (Concepteur O/R)Walkthrough: Create LINQ to SQL classes by using single-table inheritance (O/R Designer)

Le des outils LINQ to SQL 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 fournies dans le Comment : configurer l’héritage à l’aide du Concepteur O/R rubrique et 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 pas à pas, vous effectuez les tâches suivantes :During this walkthrough, you 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éer une table d’hériter deCreate a table to inherit from

Pour voir comment fonctionne l’héritage, vous créez un petit Person table, utilisez-le comme une classe de base et créez ensuite un Employee objet qui en hérite.To see how inheritance works, you 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 Explorateur de serveurs ou Database Explorer, avec le bouton droit le Tables nœud et cliquez sur ajouter une nouvelle Table.In Server Explorer or 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
    FirstNameFirstName 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.

Ajouter des 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 Explorateur de serveurs ou Database Explorer et cliquez sur afficher les données de Table.)(Right-click the Person table in Server Explorer or 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 copiez-la et collez-la dans la table en sélectionnant la ligne entière dans le résultats volet.)(You can copy it and then paste it into the table by selecting the whole row in the Results Pane.)

    IDID TypeType FirstNameFirstName 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 TaiTai YeeYee 22
    1010 22 FabricioFabricio NoriegaNoriega 33
    1111 22 KonstantinosMindy MartinMartin 33
    1212 22 KenKen KwokKwok 33

Créer un nouveau 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 New > 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 Windows Desktop.Expand either Visual C# or Visual Basic in the left-hand pane, then select Windows Desktop.

  3. Dans le volet central, sélectionnez le Windows Forms application 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.

Ajouter un LINQ vers le fichier de classes SQL au projetAdd a LINQ to SQL classes file to the project

Pour ajouter un LINQ vers le fichier 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 .dbml fichier est ajouté au projet et le Concepteur O/R s’ouvre.The .dbml file is added to the project and the O/R Designer opens.

Créer l’héritage à l’aide du 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 Explorateur de serveurs ou Database Explorer, accédez à la personne table que vous avez créé précédemment.In Server Explorer or Database Explorer, navigate to the Person table that you created earlier.

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

  3. Faites glisser un deuxième personne table sur le Concepteur O/R et remplacez son nom par employé.Drag a second Person table onto the O/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 le 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/R.Next, click the Employee object and then the Person object in the O/R Designer. La flèche sur la ligne d’héritage pointe alors vers le personne objet.The arrow on the inheritance line then points 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 héritage par défaut propriété personne.Set the Inheritance Default property to Person.

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

La classe héritée de la requête et afficher les données sur le formulaireQuery the inherited class and display the data on the form

Vous ajoutez maintenant du code au formulaire qui interroge une classe spécifique dans le modèle objet.You 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 sur 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)
    }
    

Tester l’applicationTest the application

Exécutez l’application et vérifiez que les enregistrements affichés dans la zone de liste sont tous les employés (enregistrements qui ont une valeur de 2 dans leur Type colonne).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 qui enregistre uniquement qui ont une valeur de 2 dans leur Type colonne 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