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
Créez un projet d'application console nommé CustomerComplexAddrClient et ajoutez des références à System.Data.Entity et à System.Runtime.Serialization.
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).
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.
Créez un fichier de configuration d'application comme illustré dans l'exemple.
Copiez le code de l'exemple dans le fichier Program.cs.
Ajoutez un fichier de configuration d'application avec le contenu présenté ci-dessous.
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="
Data Source=serverName;
Initial Catalog=CustomerWComplexAddr;
Integrated Security=True;
multipleactiveresultsets=true""
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)