Partager via


Procédure : interroger les types complexes (Entity Framework)

Cette rubrique indique comment exécuter une requête qui retourne des objets de type d'entité qui contiennent une propriété de type complexe. Pour plus d'informations sur les types complexes, consultez Objets de type complexe (Entity Framework) et How to: Create and Modify Complex Types.

Pour exécuter le code de cet exemple

  1. Ajoutez le modèle de vente Modèle de vente AdventureWorks Sales Model à votre projet et configurez celui-ci pour qu'il utilise Entity Framework . Pour plus d'informations, consultez Procédure : utiliser l'Assistant Entity Data Model (Entity Framework).

  2. Dans la page de codes de votre application, ajoutez les instructions using (Imports en Visual Basic) suivantes :

    Imports System
    Imports System.Collections.Generic
    Imports System.Collections
    Imports System.Data.Common
    Imports System.Data
    Imports System.IO
    Imports System.Data.SqlClient
    Imports System.Data.EntityClient
    Imports System.Data.Metadata.Edm
    
    using System;
    using System.Collections.Generic;
    using System.Collections;
    using System.Data.Common;
    using System.Data;
    using System.IO;
    using System.Data.SqlClient;
    using System.Data.EntityClient;
    using System.Data.Metadata.Edm;
    
  3. Double-cliquez sur le fichier .edmx pour afficher le modèle dans la fenêtre Explorateur de modèles du Concepteur d'entités.

  4. Sur l'aire du Concepteur d'entités, sélectionnez les propriétés Email et Phone du type d'entité Contact, puis cliquez avec le bouton droit et sélectionnez Refactoriser en nouveau type complexe. Un nouveau type complexe avec les propriétés Email et Phone sélectionnées est ajouté à l'Explorateur de modèles.

  5. Renommez le nouveau type en EmailPhone. Renommez la propriété dans le type d'entité Contact en EmailPhoneComplexType..

    Pour plus d'informations sur la création et la modification de types complexes à l'aide de l'Assistant EDM, consultez How to: Refactor Existing Properties into a Complex Type Property (Entity Data Model Tools) etHow to: Create and Modify Complex Types.

Exemple

L'exemple suivant exécute une requête qui retourne une collection de Contacts. Le type Contact contient une propriété de type complexe, EmailPhoneComplexProperty, qui comprend une propriété EmailAddress et une propriété Phone. L'exemple fournit la propriété ContactID et les valeurs du type complexe EmailPhoneComplexType.

Using context As New AdventureWorksEntities()
    Dim contacts = From contact In context.Contacts _
            Where contact.ContactID = 3 _
            Select contact

    For Each contact As Contact In contacts
        Console.WriteLine("Contact Id: " & contact.ContactID)
        Console.WriteLine("Contact's email: " & contact.EmailPhoneComplexProperty.EmailAddress)
        Console.WriteLine("Contact's phone#: " & contact.EmailPhoneComplexProperty.Phone)
    Next
End Using

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    var contacts =
        from contact in context.Contacts
        where contact.ContactID == 3
        select contact;

    foreach (Contact contact in contacts)
    {
        Console.WriteLine("Contact Id: " + contact.ContactID);
        Console.WriteLine("Contact's email: " + contact.EmailPhoneComplexProperty.EmailAddress);
        Console.WriteLine("Contact's phone#: " + contact.EmailPhoneComplexProperty.Phone);
    }
}

Voir aussi

Référence

Complex Type Objects
How to: Create and Modify Complex Types