Entity Framework 은 C#과 같은 객체 지향형 프로그래밍 언어에서 데이터베이스를 쉽게 사용하기 위한 도구로 객체와 관계형 DB의 테이블을 매핑하여 (ADO.NET에서처럼 별도의 SQL 쿼리를 작성하지 않고도) 쉽게 데이터를 액세스할 수 있게 합니다.
Micorosoft가 직접 구현한 ORM(Object Relational Mapping) 기술로는 Entity Framework 과 LINQ TO SQL 이 있습니다.
Entity Framework은 데이터베이스를 액세스하는 기술이므로 ASP.NET에서만 사용하는 것은 아니지만 ASP.NET MVC에서 데이터를 액세스하는 기본 프레임워크로 Entity Framework을 사용하기 때문에 MVC를 사용하면 Entity Framework를 자연스럽게 사용하게 됩니다.
ASP.NET MVC 프로젝트를 새로 생성하면 보통 Entity Framework 이 포함되는 경우가 많지만 일부 옵션에서 없는 경우가 있다.
만약 ASP.NET 프로젝트에 Entity Framework V6 가 없는 경우 Nuget Package에서 다운로드하면 됩니다.
많은 응용프로그램들은 데이터를 저장할 데이터베이스를 필요로 합니다. 쉽게 쿼리에 접근할 수 있는 도구를 제공해주는 것이 Entity Framework입니다. 데이터 테이블 구조를 클래스화 시키고 각 객체에 데이터를 매핑 시키는 기술입니다.
Entity Framework 모델은 3가지가 있습니다. Code First , Model First , Database First
Model Frist 와 Database First 접근 모델은 VS의 Visual Model Designer를 통해 객체/테이블 매핑을 디자인하는 방식으로 두 개간 차이점은 Database Frist는 기존 DB로부터 테이블 구조를 읽어와서 디자이너를 통해 Visual Model로 구성되는 것을 말하고 Model First는 기존 DB가 없을 때 직접 Model Designer를 써서 Entity들을 추가해 가면서 모델을 구성하는 방식입니다. 위 두 가지는 Visual Model Designer로 디자인한 것을 edmx 파일에 저장하게 됩니다.
Code First 방식은 Model Designer / edmx를 사용하지 않고 데이터 모델을 C# 클래스로 직접 코딩하는 방식입니다.
C# 클래스로 테이블의 구조를 정의하고 클래스의 프로퍼티를 테이블 칼럼에 매핑합니다. Code First 란 말 그대로 DB를 미리 설계하지 않고 C# 클래스로 Domain Object를 정의하고 프로그램 실행 시 DB가 없으면 자동으로 DB를 생성하는 방식을 취합니다.
참조 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=suprema_kbs&logNo=221463800577