티스토리 뷰
목차
Entity Framework 접근 방식 Code First, Database First
Entity Framework
- 개발자가 관계형 데이터를 도메인별 개체로 작업 할 수 있게 해주는 ORM (Object / Relational Mapping) 프레임 워크로, 개발자가 일반적으로 작성해야 하는 대부분의 데이터 액세스 배관 코드가 필요하지 않다.
- Entity Framework의 ORM 구현은 변경 추적, ID 확인, 지연 로드 및 쿼리 변환과 같은 서비스를 제공하므로 개발자는 데이터 액세스 기본보다는 응용 프로그램별 비즈니스 논리에 집중할 수 있다.
Code First 접근 방식
- Visual Model Designer / EDMX 를 사용하지 않고 데이터 모델을 C# 클래스로 직접 코딩하는 방식이다.
- DB를 미리 설계하지 않고 C# 클래스들로 Domain Object들을 정의하고, 프로그램 실행 시 DB가 없으면 자동으로 DB를 생성하는 방식을 취한다.
- C# 클래스로 테이블의 구조를 정의하는데, 클래스의 속성을 테이블의 컬럼에 매핑한다.
- Domain Class의 명세를 이용하여 Application 실행 시 해당 Table이 없는 경우 자동으로 생성 (아래 그림 참고)
[Code First 접근 방식] Table 자동 생성
- 도메인을 위한 클래스 생성
[Entity Framework] 코드 퍼스트, 데이터 퍼스트
- Student는 Standard의 참조를 가지고 있으며, Standard는 Student의 집합을 가지고 있다.
[Entity Framework] 코드 퍼스트, 데이터 퍼스트
- DBContext 클래스에서 파생되고 모델의 일부가 될 유형의 DbSet 속성을 표시하는 Context 클래스를 생성
- Context 클래스를 사용하여 Student를 추가
- Context 클래스의 기본 생성자에서 전달된 매개 변수를 기반으로 데이터베이스를 생성 (Context 클래스의 생성자에서 매개 변수를 전달하지 않았으므로 ‘.\SQLEXPRESS 데이터베이스’에 클래스 전체 경로를 이름으로 하는 EF_Code_First_Tutorials.SchoolContext DB를 생성)
[Entity Framework] 코드 퍼스트, 데이터 퍼스트
- 위에 정의된 Students 및 Standards 도메인 클래스를 기반으로 Students 및 Standards 테이블을 데이터베이스에 생성
Database First 접근 방식
- 기존 DB로부터 테이블 구조들을 읽어 Visual Model을 구성한다.
- DB의 테이블과 컬럼에 맞게 데이터 모델과 클래스를 자동으로 만들어 준다.
- 데이터 모델은 *.edmx 파일에 내용이 저장된다.
[Entity Framework] 코드 퍼스트, 데이터 퍼스트
Entity Framework 접근 방식 Code First, Database First