본문 바로가기
C++ 200제/코딩 IT 정보

Entity Framework 접근 방식 Code First, Database First

by vicddory 2018. 12. 2.
반응형

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 접근 방식 엔티티 프레임워크[Code First 접근 방식] Table 자동 생성


- 도메인을 위한 클래스 생성


도메인을 위한 클래스 생성[Entity Framework] 코드 퍼스트, 데이터 퍼스트


- Student는 Standard의 참조를 가지고 있으며, Standard는 Student의 집합을 가지고 있다.


DBContext DbSet 속성 클래스 파생[Entity Framework] 코드 퍼스트, 데이터 퍼스트


- DBContext 클래스에서 파생되고 모델의 일부가 될 유형의 DbSet 속성을 표시하는 Context 클래스를 생성


Context 클래스 COde first 접근[Entity Framework] 코드 퍼스트, 데이터 퍼스트


-  Context 클래스를 사용하여 Student를 추가


- Context 클래스의 기본 생성자에서 전달된 매개 변수를 기반으로 데이터베이스를 생성 (Context 클래스의 생성자에서 매개 변수를 전달하지 않았으므로 ‘.\SQLEXPRESS 데이터베이스’에 클래스 전체 경로를 이름으로 하는 EF_Code_First_Tutorials.SchoolContext DB를 생성)


code first context 클래스 생성자[Entity Framework] 코드 퍼스트, 데이터 퍼스트


- 위에 정의된 Students 및 Standards 도메인 클래스를 기반으로 Students 및 Standards 테이블을 데이터베이스에 생성


Database First 접근 방식


- 기존 DB로부터 테이블 구조들을 읽어 Visual Model을 구성한다.

- DB의 테이블과 컬럼에 맞게 데이터 모델과 클래스를 자동으로 만들어 준다. 

- 데이터 모델은 *.edmx 파일에 내용이 저장된다.


Database First 접근 방식[Entity Framework] 코드 퍼스트, 데이터 퍼스트


Entity Framework 접근 방식 Code First, Database First

반응형