Freigeben über


Gewusst wie: Erstellen und Ausführen von Objektabfragen mit komplexen Typen (Entity Framework)

Dieses Beispiel verwendet die im Thema Gewusst wie: Definieren eines Modells mit komplexen Typen (Entity Framework) definierten Schemas.

So erstellen Sie ein Projekt mit komplexen Typen

  1. Erstellen Sie ein Konsolenanwendungsprojekt mit dem Namen CustomerComplexAddrClient, und fügen Sie Verweise auf System.Data.Entity und System.Runtime.Serialization hinzu.

  2. Fügen Sie einen Verweis auf die DLL hinzu, die von dem im Thema Gewusst wie: Definieren eines Modells mit komplexen Typen (Entity Framework) beschriebenen Projekt erstellt wird.

  3. Fügen Sie die Schemas aus dem Thema Gewusst wie: Definieren eines Modells mit komplexen Typen (Entity Framework) im gleichen Ordner wie die ausführbare Datei hinzu.

  4. Erstellen Sie eine Anwendungskonfigurationsdatei, wie im Beispiel beschrieben.

  5. Kopieren Sie den Code im Beispiel in die Datei Program.cs.

  6. Fügen Sie eine Anwendungskonfigurationsdatei mit dem unten dargestellten Inhalt hinzu.

  7. Erstellen Sie das Projekt, und führen Sie es aus.

<?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>

Beispiel

Der Beispielcode zeigt alle CCustomers und die internen Eigenschaften des komplexen Typs CAddress an. Der Objektkontext enthält eine Auflistung von CCustomers mit der komplexen Eigenschaft Address. Die Address-Eigenschaft hat den Typ CAddress. Von den Instanzen des Typs CCustomer kann auf sämtliche interne Eigenschaften zugegriffen werden.

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());
            }
        }
    }
}

Siehe auch

Aufgaben

Gewusst wie: Definieren eines Modells mit komplexen Typen (Entity Framework)
Gewusst wie: Hinzufügen und Ändern von Objekten mit komplexen Typen (Entity Framework)

Konzepte

Komplexer Typ (EDM)