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
Erstellen Sie ein Konsolenanwendungsprojekt mit dem Namen CustomerComplexAddrClient, und fügen Sie Verweise auf System.Data.Entity und System.Runtime.Serialization hinzu.
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.
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.
Erstellen Sie eine Anwendungskonfigurationsdatei, wie im Beispiel beschrieben.
Kopieren Sie den Code im Beispiel in die Datei Program.cs.
Fügen Sie eine Anwendungskonfigurationsdatei mit dem unten dargestellten Inhalt hinzu.
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="
Data Source=serverName;
Initial Catalog=CustomerWComplexAddr;
Integrated Security=True;
multipleactiveresultsets=true""
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)