Freigeben über


Gewusst wie: Abfrage komplexer Typen (Entity Framework)

Dieses Thema zeigt, wie eine Abfrage ausgeführt wird, die Entitätstypobjekte zurückgibt, die eine komplexe Typeigenschaft enthalten. Weitere Informationen zu komplexen Typen finden Sie unter Objekte komplexer Typen (Entity Framework) und How to: Create and Modify Complex Types.

So führen Sie den Code in diesem Beispiel aus

  1. Fügen Sie dem Projekt das AdventureWorks Sales-Modell hinzu, und konfigurieren Sie das Projekt für die Verwendung von Entity Framework . Weitere Informationen finden Sie unter Gewusst wie: Verwenden des Entity Data Model-Assistenten (Entity Framework).

  2. Fügen Sie der Codepage Ihrer Anwendung die folgenden using-Anweisungen (Imports in Visual Basic) hinzu:

    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. Doppelklicken Sie auf die EDMX-Datei, um das Modell im Modellbrowser-Fenster des Entity Designers anzuzeigen.

  4. Wählen Sie auf der Entity Designer-Oberfläche die Eigenschaften Email und Phone des Entitätstyps Contact aus, klicken Sie mit der rechten Maustaste, und wählen Sie dann In neuen komplexen Typ umgestalten aus. Ein neuer komplexer Typ mit den ausgewählten Eigenschaften Email und Phone wird dem Modellbrowser hinzugefügt.

  5. Benennen Sie den neuen Typ in EmailPhone um. Geben Sie der Eigenschaft im Contact-Entitätstyp den neuen Namen EmailPhoneComplexType..

    Informationen zum Erstellen und Ändern von komplexen Typen mit dem Assistenten für Entity Data Model finden Sie unter How to: Refactor Existing Properties into a Complex Type Property (Entity Data Model Tools) undHow to: Create and Modify Complex Types.

Beispiel

Im folgenden Beispiel wird eine Abfrage ausgeführt, die eine Contacts-Auflistung zurückgibt. Der Contact-Typ enthält die komplexe Typeigenschaft EmailPhoneComplexProperty, die aus einer EmailAddress-Eigenschaft und einer Phone-Eigenschaft besteht. Das Beispiel gibt die ContactID-Eigenschaft und die Werte des komplexen Typs EmailPhoneComplexType aus.

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

Siehe auch

Verweis

Complex Type Objects
How to: Create and Modify Complex Types