다음을 통해 공유


자동 추적 엔터티 Serialize

ADO.NET Entity Framework 응용 프로그램에서 개체 컨텍스트는 개체의 변경 내용을 추적합니다. 그러나 개체 컨텍스트를 사용할 수 없는 다른 계층에서 개체를 조작해야 하는 경우에는 변경 내용 추적 방법과 해당 변경 내용을 개체 컨텍스트에 다시 보고하는 방법을 사용자가 결정해야 합니다. Entity Framework 버전 4부터는 자동 추적 엔터티를 사용하여 모든 계층에서 변경 내용을 추적할 수 있습니다. 자동 추적 엔터티는 변경 내용을 스칼라 속성, 복합 속성 및 탐색 속성에 기록하는 기능이 있는 엔터티 형식을 생성하는 T4(Text Template Transformation Toolkit) 템플릿으로 만들어진 엔터티입니다. Visual Studio 2010에서는 ADO.NET 자동 추적 엔터티 생성기 템플릿을 사용할 수 있습니다. 자세한 내용은 연습: 자동 추적 엔터티 serialize(Entity Framework)를 참조하십시오.

이 샘플은 MSDN 코드 갤러리(MSDN Code Gallery)의 Entity Framework Documentation Samples 사이트에서 사용할 수 있습니다.

시나리오

샘플에서는 WCF 서비스가 엔터티 그래프를 반환하는 일련의 작업을 노출하는 방법을 보여 줍니다. 클라이언트 응용 프로그램에서는 해당 그래프를 조작하고 Entity Framework를 사용하여 업데이트의 유효성을 검사하고 데이터베이스에 저장하는 서비스 작업에 수정 내용을 전송합니다.

사전 요구 사항

이 샘플을 실행하기 전에 다음 소프트웨어가 설치되어 있는지 확인하십시오.

  • .NET Framework 4가 포함된 Visual Studio 2010

  • SQL Server 2005 또는 2008 데이터베이스 엔진

    • School 샘플 데이터베이스(샘플에 포함됨)

    • SQL Server Management Studio(옵션)

샘플 빌드

STESchoolModelExample은 다음과 같은 5개의 프로젝트로 구성됩니다.

  • School 기반 모델과 자동 추적 엔터티 템플릿이 들어 있는 STESchoolModel 클래스 라이브러리 프로젝트 - 자동 추적 엔터티 형식 템플릿 및 형식화된 System.Data.Objects.ObjectContext 템플릿 포함

  • STESchoolModel 프로젝트에 있는 자동 추적 엔터티 형식 템플릿에 연결되는 STESchoolModelTypes 클래스 라이브러리 프로젝트

  • 엔터티 그래프를 반환하고 클라이언트에서 변경된 내용을 데이터베이스에 적용하는 일련의 작업을 노출하는 STESchoolModelService WCF(Windows Communication Foundation) 서비스 응용 프로그램

  • STESchoolModelConsoleTest 콘솔 클라이언트 응용 프로그램

  • STESchoolModelWPFTest - WPF(Windows Presentation Foundation) 클라이언트 응용 프로그램

다음 절차에 따라 샘플을 빌드할 수 있습니다.

STESchoolModelExample 응용 프로그램을 빌드하려면

  1. (옵션) School 샘플 데이터베이스가 SQL Server 인스턴스에 없는 경우 프로젝트에 포함된 CreateSchool.sql 스크립트를 실행합니다.

  2. Visual Studio에서 솔루션 파일을 엽니다.

  3. (옵션) 로컬 컴퓨터의 기본 인스턴스가 아닌 SQL Server 인스턴스에서 School 데이터베이스를 만든 경우, STESchoolModelService, STESchoolModelConsoleTest, STESchoolModelWPFTest 프로젝트의 구성 파일에서 연결 문자열의 Data Source를 수정하여 올바른 SQL Server 인스턴스를 지정합니다.

  4. 솔루션을 빌드합니다.

샘플 실행

다음 절차에 따라 샘플을 실행할 수 있습니다.

클라이언트 응용 프로그램 실행

  1. STESchoolModelWPFTestSTESchoolModelConsoleTest 클라이언트 프로젝트의 서비스 참조를 업데이트합니다. 참조를 업데이트하려면 솔루션 탐색기서비스 참조 폴더에서 ServiceReference1을 마우스 오른쪽 단추로 클릭한 다음 서비스 참조 업데이트를 선택합니다.

  2. STESchoolModelWPFTest 또는 STESchoolModelConsoleTest를 시작 프로젝트로 설정합니다.

  3. 응용 프로그램을 실행합니다. 클라이언트가 참조된 서비스와 통신하지 못한 경우 다음 단계를 따릅니다.

    1. 클라이언트 프로젝트에서 ServiceReference1을 삭제합니다.

    2. 서비스 참조를 다시 추가합니다. 서비스에 대한 참조를 추가하려면 솔루션 탐색기에서 서비스 참조 폴더를 마우스 오른쪽 단추로 클릭한 다음 서비스 참조 추가를 선택합니다.

    3. 서비스를 구성합니다. STESchoolModelService에서는 System.Collections.Generic.List를 반환하므로 서비스 참조를 구성해야 합니다. 서비스 이름(ServiceReference1)을 마우스 오른쪽 단추로 클릭하고 **서비스 참조 구성…**을 선택합니다. 서비스 참조 구성 대화 상자의 컬렉션 형식 목록에서 System.Collections.Generic.List 형식을 선택합니다.

    4. 응용 프로그램을 실행합니다.

샘플 제거

다음 절차에 따라 STESchoolModelExample 샘플을 제거할 수 있습니다.

STESchoolModelExample 응용 프로그램 제거

  1. 프로젝트 디렉터리 및 디렉터리 내용을 삭제합니다.

  2. (옵션) SQL Server 인스턴스에서 School 데이터베이스를 삭제합니다.

참고 항목

기타 리소스

ADO.NET Entity Framework
엔터티 데이터 모델
ADO.NET 엔터티 데이터 모델 도구
컨트롤에 개체 바인딩(Entity Framework)
연습: 자동 추적 엔터티 serialize(Entity Framework)