모델 및 매핑 생성
Entity Framework 응용 프로그램 및 서비스는 세 가지 XML 기반 언어로 표현된 모델 및 매핑 정보를 기반으로 합니다.
CSDL은 응용 프로그램 데이터를 개념적 모델에서 엔터티와 관계의 집합으로 나타내며 엔터티 데이터 모델의 구현입니다. 저장소 모델은 SSDL로 표현되며 데이터 저장소의 스키마를 나타냅니다. 두 모델 간의 매핑은 MSL로 표현됩니다.
응용 프로그램의 CSDL, SSDL 및 MSL 콘텐츠는 ADO.NET Entity Data Model Tools를 통해 자동으로 생성할 수 있습니다. Entity Data Model Wizard는 기존 데이터베이스의 데이터 클래스뿐만 아니라 모델 및 매핑 정보도 생성합니다. 이때 Entity Data Model Designer(Entity Designer)를 사용하여 모델 및 매핑 정보를 그래픽으로 수정할 수 있습니다. 또는 Entity Designer를 사용하여 개념적 모델을 그래픽으로 만든 다음 Generate Database Wizard를 사용하여 개념적 모델을 지원하는 저장소 모델, 매핑, 데이터 클래스 및 데이터베이스를 자동으로 생성할 수 있습니다. 두 경우 모두 Update Model Wizard를 사용하여 기본 데이터베이스가 변경될 때 모델 및 매핑 정보를 업데이트할 수 있습니다.
EDM 생성기(EdmGen.exe)는 엔터티와 데이터 원본 테이블 간의 일대일 매핑을 통해 간단한 개념적 모델을 생성할 수 있도록 하는 명령줄 도구입니다. 또한 EdmGen.exe를 사용하여 개념적 모델의 유효성을 검사하고 개념적 모델의 엔터티 형식을 기반으로 하는 데이터 클래스를 생성할 수 있습니다. EdmGen.exe는 버전 3.5 서비스 팩 1(SP1)부터 .NET Framework에 포함된 Entity Framework 런타임 구성 요소의 일부입니다.
고려 사항
엔터티 데이터 모델 도구를 사용하여 기존 데이터베이스에서 개념적 모델을 생성하는 경우 다음 사항을 고려해야 합니다.
모든 엔터티에 키가 있어야 합니다. 데이터베이스에 기본 키가 없는 테이블이 있는 경우 엔터티 데이터 모델 도구에서 해당 엔터티의 키를 유추합니다. 뿐만 아니라 엔터티 데이터 모델 도구는 이 엔터티의 데이터를 읽기 전용으로 만드는 DefiningQuery 요소를 저장소 스키마에 생성합니다. 엔터티 데이터를 업데이트 가능하게 만들려면 생성된 키가 유효한 키인지 확인한 후 DefiningQuery 요소를 제거해야 합니다.
외래 키만 포함된 테이블(Pure Join Table이라고도 함)이 데이터베이스에 있는 두 테이블 간의 다대다 관계를 나타내는 경우 이 테이블에 해당하는 엔터티가 개념적 모델에 생성되지 않습니다. 이러한 테이블이 엔터티 데이터 모델 도구를 통해 발견되면 개념적 모델에서 엔터티 대신 다대다 연결로 표현됩니다. School 모델의 CourseInstructor 연결이 이 동작의 예입니다. 자세한 내용은 School .edmx 파일 생성(Entity Framework 퀵 스타트)을 참조하십시오.
School 모델
이 시작(Entity Framework) 단원의 항목에서는 School이라는 샘플 데이터베이스를 참조합니다. SQL Server의 인스턴스에서 School 데이터베이스를 생성하는 스크립트는 School 샘플 데이터베이스 만들기(Entity Framework 퀵 스타트)를 참조하십시오.
School 데이터베이스에는 다음 테이블이 포함되어 있습니다.
Course
StudentGrade
CourseInstructor
Department
OfficeAssignment
OnlineCourse
OnsiteCourse
Person
이 샘플 데이터베이스에서는 엔터티 데이터 모델 도구에서 지원되는 다수의 복합 모델링 시나리오를 강조합니다. 스크립트에서는 테이블 간의 관계를 생성하며 샘플 실행을 통해 작동 방식을 확인할 수 있도록 샘플 데이터를 삽입합니다. 다음은 ADO.NET 엔터티 데이터 모델 디자이너에 표시되는 School 모델을 보여 줍니다.
참고 항목
개념
기타 리소스
Entity Framework 구성(Entity Framework 작업)
시작(Entity Framework)
Entity Data Model Tools
CSDL, SSDL 및 MSL 사양