4. DBContext

4-9. Entity Framework Core CRUD 작업

이 섹션에서는 Entity Framework Core를 사용하여 CRUD(Create, Read, Update, Delete) 작업을 실습합니다.

데이터베이스와의 상호 작용을 코드로 관리하여 API를 통해 데이터를 조작하는 방법을 배웁니다.

  1. 1.데이터 조회하기: DbContext.DbSet.ToList()FirstOrDefault() 메서드를 사용하여 데이터베이스에서 데이터를 조회합니다. 이 과정에서 SQL Select 문이 자동으로 생성되고 실행됩니다.
  2. 2.데이터 추가하기: DbContext.DbSet.Add() 메서드와 DbContext.SaveChanges()를 사용하여 데이터베이스에 새로운 데이터를 추가합니다. 이때, ID는 자동으로 관리되므로 별도로 지정할 필요가 없습니다.
  3. 3.데이터 업데이트하기: DbContext.DbSet.Update() 메서드와 DbContext.SaveChanges()를 사용하여 데이터를 업데이트합니다. Entity Framework Core는 제공된 엔티티의 ID를 기반으로 해당 레코드를 찾아 모든 필드를 업데이트합니다.
  4. 4.데이터 삭제하기: DbContext.DbSet.Remove() 메서드와 DbContext.SaveChanges()를 사용하여 데이터를 삭제합니다. 삭제할 데이터는 먼저 FirstOrDefault() 메서드를 사용하여 조회한 후 삭제합니다.
  5. 5.PATCH 요청 처리하기: HTTP PATCH 요청을 처리할 때는 JsonPatchDocument를 사용하여 변경할 필드만 포함된 문서를 적용합니다. 이 과정에서 Entity Framework Core의 한계로 인해 복잡한 상황이 발생할 수 있으며, 이는 추가적인 처리가 필요할 수 있습니다.
  6. 6.문제 해결: PATCH 요청 처리 시 “동일한 키 값을 가진 다른 인스턴스가 이미 추적 중”이라는 오류가 발생할 수 있습니다. 이는 Entity Framework Core가 동일한 ID를 가진 엔티티의 여러 인스턴스를 동시에 추적하려고 할 때 발생합니다. 이 문제를 해결하기 위해서는 추가적인 로직이 필요할 수 있습니다.
DB Entity Framework Core CRUD

이 실습을 통해 개발자는 Entity Framework Core를 사용하여 .Net Core Web API 프로젝트에서 데이터베이스를 효율적으로 관리하고, API를 통해 데이터를 조작하는 방법을 배울 수 있습니다. 데이터베이스와의 상호 작용을 코드로 관리함으로써 데이터베이스 스키마 변경, 데이터 조작 등의 작업을 보다 체계적이고 효율적으로 수행할 수 있습니다