Procédure : créer et exécuter des requêtes d'objet avec des types complexes (Entity Framework)

Cet exemple utilise les schémas définis dans la rubrique Procédure : définir un modèle avec des types complexes (Entity Framework).

Pour créer le projet en utilisant des types complexes

  1. Créez un projet d'application console nommé CustomerComplexAddrClient et ajoutez des références à System.Data.Entity et à System.Runtime.Serialization.

  2. Ajoutez une référence à la DLL générée à partir du projet décrit dans la rubrique Procédure : définir un modèle avec des types complexes (Entity Framework).

  3. Ajoutez les schémas de la rubrique Procédure : définir un modèle avec des types complexes (Entity Framework) au dossier dans lequel se trouve l'exécutable.

  4. Créez un fichier de configuration d'application comme illustré dans l'exemple.

  5. Copiez le code de l'exemple dans le fichier Program.cs.

  6. Ajoutez un fichier de configuration d'application avec le contenu présenté ci-dessous.

  7. Générez et exécutez le projet.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="CustomerComplexAddressContext" 
         connectionString="metadata=.;
         provider=System.Data.SqlClient;
         provider connection string=&quot;
         Data Source=serverName;
         Initial Catalog=CustomerWComplexAddr;
         Integrated Security=True;
         multipleactiveresultsets=true&quot;"
         providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

Exemple

L'exemple de code affiche tous les éléments CCustomers et les propriétés internes du type complexe CAddress. Le contexte de l'objet contient une collection d'éléments CCustomers avec la propriété complexe Address. La propriété Address est de type CAddress. Toutes ses propriétés internes sont accessibles à partir d'instances du type CCustomer.

Option Explicit On
Option Strict On
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports CustomerComplexAddress_VB
Imports CustomerComplexAddress_VB.CustomerComplexAddr

Module Module1
    Sub Main()
        Try
            Using objCtx As CustomerComplexAddrContext = _
                    New CustomerComplexAddrContext()
                For Each customer As CCustomer In objCtx.CCustomers
                    Console.WriteLine("Customer Id: " & _
                        "{0} {1}" & vbNewLine & "{2} {3}," & _
                        "{4} {5}" & vbNewLine & "Phone: {6}", _
                        customer.CustomerId.ToString(), _
                        customer.CompanyName, _
                        customer.Address.StreetAddress, _
                        customer.Address.City, _
                        customer.Address.Region, _
                        customer.Address.PostalCode, _
                        customer.Address.Phone)
                    Console.Write(vbNewLine)
                Next
            End Using
        Catch ex As Exception
            Console.WriteLine(ex.ToString())
        End Try
    End Sub
End Module
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CustomerComplexAddress;

namespace CustomerComplexAddressClient
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                using (CustomerComplexAddressContext objCtx =
                    new CustomerComplexAddressContext())
                {
                    foreach (CCustomer customer in objCtx.CCustomers)
                    {
                        Console.WriteLine("Customer Id: " +
                            "{0} {1}\r\n{2} {3}," +
                            "{4} {5}\n\rPhone: {6}", 
                            customer.CustomerId.ToString(),
                            customer.CompanyName,
                            customer.Address.StreetAddress,
                            customer.Address.City,
                            customer.Address.Region,
                            customer.Address.PostalCode,
                            customer.Address.Phone);
                    }

                    
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

Voir aussi

Tâches

Procédure : définir un modèle avec des types complexes (Entity Framework)
Procédure : ajouter et modifier des objets avec des types complexes (Entity Framework)

Concepts

Type complexe (EDM)