방법: 복합 형식 쿼리(Entity Framework)

이 항목에서는 복합 형식 속성이 포함된 엔터티 형식 개체를 반환하는 쿼리의 실행 방법을 보여 줍니다. 복합 형식에 대한 자세한 내용은 복합 형식 개체(Entity Framework)How to: Create and Modify Complex Types을 참조하십시오.

이 예제의 코드를 실행하려면

  1. 프로젝트에 AdventureWorks Sales 모델을 추가하고 Entity Framework 를 사용하도록 프로젝트를 구성합니다. 자세한 내용은 방법: 엔터티 데이터 모델 마법사 사용(Entity Framework)을 참조하십시오.

  2. 응용 프로그램의 코드 페이지에서 다음 using 문(Visual Basic에서는 Imports)을 추가합니다.

    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. .edmx 파일을 두 번 클릭하여 Entity Designer의 모델 브라우저 창에 모델을 표시합니다.

  4. Entity Designer 화면에서 Contact 엔터티 형식의 EmailPhone 속성을 선택한 다음 마우스 오른쪽 단추를 클릭하고 새 복합 형식으로 리팩터링을 선택합니다. 선택한 EmailPhone 속성을 갖는 새 복합 형식이 Model 브라우저에 추가됩니다.

  5. 새 형식의 이름을 EmailPhone으로 바꿉니다. Contact 엔터티 형식의 속성 이름을 EmailPhoneComplexType으로 바꿉니다.

    엔터티 데이터 모델 마법사를 사용하여 복합 형식을 만들고 수정하는 방법은 How to: Refactor Existing Properties into a Complex Type Property (Entity Data Model Tools)How to: Create and Modify Complex Types을 참조하십시오.

예제

다음 예제에서는 Contacts의 컬렉션을 반환하는 쿼리를 실행합니다. Contact 형식에는 EmailAddress 속성과 Phone 속성으로 구성된 복합 형식 속성 EmailPhoneComplexProperty가 포함되어 있습니다. 이 예제에서는 ContactID 속성과 EmailPhoneComplexType 복합 형식의 값을 출력합니다.

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

참고 항목

참조

Complex Type Objects
How to: Create and Modify Complex Types