다음을 통해 공유


엔터티 데이터 모델 생성

엔터티 프레임워크 응용 프로그램 및 서비스는 EDM(엔터티 데이터 모델)을 기반으로 합니다. 이 모델은 응용 프로그램 데이터를 엔터티 집합의 형태로 나타내며 정의된 데이터 원본에 매핑된 관계를 보여 줍니다. EDM은 엔터티 및 관계로 표현된 개념적 모델, 논리 모델의 스키마를 나타내는 저장소 모델 및 이 두 가지 모델 간의 매핑으로 구성됩니다. 프로젝트 개발 단계는 일반적으로 개념적 모델부터 시작되며, 그런 다음 개념적 모델에서 논리 모델이 파생됩니다.

기존 데이터베이스에서 엔터티 데이터 모델을 파생하려는 개발자의 요구를 충족시킬 수 있도록 엔터티 프레임워크에서는 EDM 생성, EDM 유효성 검사, 개념 모델을 기반으로 프로그래밍 가능 클래스 생성 등을 수행할 수 있는 일련의 도구가 제공됩니다. EDM 생성기(EdmGen.exe) 명령 프롬프트 유틸리티를 사용하여 엔터티와 데이터 원본 테이블 간의 일대일 매핑을 통해 간단한 모델을 생성할 수 있습니다. 또한 EdmGen.exe를 사용하여 엔터티 형식 기반의 데이터 클래스를 생성하고 EDM의 유효성을 검사할 수도 있습니다. EdmGen.exe는 .NET Framework 3.5 서비스 팩 1(SP1)에 제공되는 엔터티 프레임워크 런타임 구성 요소의 일부입니다.

Visual Studio 2008 SP1에는 데이터 원본에서 선택한 개체를 포함하는 모델을 생성할 수 있는 통합된 엔터티 데이터 모델 도구 집합이 포함되어 있습니다. 모델을 생성한 후에는 엔터티 데이터 모델 디자이너에서 개념적 모델과 매핑을 수정하여 응용 프로그램에 필요한 개념적 모델로 변경합니다. 자세한 내용은 엔터티 데이터 모델 도구를 참조하십시오.

고려 사항

EDM을 생성할 때 다음 사항을 고려해야 합니다.

  • 모든 엔터티에 키가 있어야 합니다. 데이터베이스에 기본 키가 없는 테이블이 있는 경우, EDM 도구에서 해당 엔터티에 대해 키를 유추합니다. 뿐만 아니라 EDM 도구는 이 엔터티에 해당하는 데이터를 읽기 전용으로 만드는 DefiningQuery 요소를 저장소 스키마에 생성합니다. 엔터티 데이터를 업데이트 가능하게 만들려면 생성된 키가 유효한 키인지 확인한 후 DefiningQuery 요소를 제거해야 합니다.

  • 데이터베이스 내 두 테이블 사이의 다대다 관계를 나타내는 테이블에 개념 스키마의 동일 엔터티가 없을 수 있습니다. 외래 키에 해당하는 두 열 외에 다른 열은 없는 테이블이 EDM 도구에서 발견되면, 매핑 테이블이 엔터티가 아닌 다대다 연결의 형태로 개념 스키마에 나타납니다. School 모델의 CourseInstructor 연결이 이 동작의 예입니다. 자세한 내용은 School 엔터티 데이터 모델 생성(Entity Framework 퀵 스타트)을 참조하십시오.

  • 이번 릴리스에서 엔터티 데이터 모델 도구는 기존 데이터 원본을 기반으로 한 EDM 자동 생성만 지원합니다. 개념적 모델을 기반으로 하여 데이터 원본(예: 관계형 데이터베이스)은 자동으로 생성할 수 없습니다.

School 모델

시작 단원의 항목은 School이라는 샘플 데이터베이스를 참조합니다. SQL Server에 School 데이터베이스를 생성하는 스크립트는 School 샘플 데이터베이스 만들기(Entity Framework 퀵 스타트)를 참조하십시오.

School 데이터베이스에는 다음 테이블이 포함되어 있습니다.

  • Course

  • CourseGrade

  • CourseInstructor

  • Department

  • OfficeAssignment

  • OnlineCourse

  • OnsiteCourse

  • Person

이 샘플 데이터베이스에서는 엔터티 데이터 모델 도구에서 지원되는 다수의 복합 모델링 시나리오를 강조합니다. 스크립트는 테이블 간의 관계를 생성하며 샘플 실행을 통해 작동 방식을 확인할 수 있도록 샘플 데이터를 삽입합니다. 다음은 ADO.NET 엔터티 데이터 모델 디자이너에 표시되는 School EDM을 보여 줍니다.

Entity Designer의 School EDM

참고 항목

개념

저장소 스키마에 개념적 모델 매핑
Entity Framework의 데이터 모델링

기타 리소스

Entity Framework 구성(Entity Framework 작업)
시작(Entity Framework)
엔터티 데이터 모델 도구
EDM 사양
스키마 및 매핑 사양(Entity Framework)