4. DBContext

4-1. Entity Framework Core 데이터베이스 모델

이 섹션에서는 실제 데이터베이스를 애플리케이션에 통합하는 과정을 다룹니다.

테스트 목적으로 사용했던 임시 데이터 저장소 대신 Entity Framework Core를 사용하여 데이터베이스와의 상호작용을 구현합니다.

  1. Entity Framework Core 소개:
    • Entity Framework Core는 .NET에서 사용되는 객체 관계 매핑(ORM) 라이브러리입니다. 복잡한 SQL 쿼리를 작성하지 않고도 데이터베이스의 CRUD(Create, Read, Update, Delete) 작업을 간단하게 수행할 수 있게 해줍니다.
  2. 데이터베이스 모델 설계:
    • Plant 모델을 데이터베이스 테이블로 생성하기 위해 모델 클래스에 필요한 속성을 정의합니다. 예를 들어, ID, Name, Details, Rate, Size, Occupancy, ImageUrl 등의 속성을 포함시킵니다.
  3. 데이터 전송 객체(DTO) 업데이트:
    • API와의 상호작용에 사용되는 PlantDTO 클래스도 데이터베이스 모델에 추가된 새로운 속성에 맞게 업데이트합니다. 생성 및 업데이트 날짜는 DTO에 포함시키지 않습니다.
  4. 데이터베이스 테이블의 기본 키 설정:
    • ID 속성은 데이터베이스 테이블의 기본 키로 자동 설정됩니다. 명시적으로 기본 키를 지정하고 싶다면 [Key] 데이터 어노테이션을 사용할 수 있습니다.
  5. 실습 예시:
    • 위 코드는 Plant 모델과 PlantDTO 클래스의 예시를 보여줍니다. 이 모델과 DTO는 데이터베이스 테이블과 API 간의 데이터 교환에 사용됩니다.

public class Plant
{
    public int ID { get; set; }
    public string Name { get; set; }
    
    public string Details { get; set; }
    public double Rate { get; set; }
    public int Size { get; set; }
    public int Occupancy { get; set; }
    public string ImageUrl { get; set; }
    public DateTime CreatedDate { get; set; }
    public DateTime UpdatedDate { get; set; }
}
​
public class PlantDTO
{
    public int Id { get; set; }
​
    [Required]
    [MaxLength(30)]
    public string Name { get; set; }
    public string Details { get; set; }
    [Required]
    public double Rate { get; set; }
​
    public int Occupancy { get; set; }
    public int Size { get; set; }
    public string ImageUrl { get; set; }
​
    public DateTime CreatedDate { get; set; }
}

Entity Framework Core를 사용하여 데이터베이스 모델을 정의하고 관리하는 방법을 이해하면, .NET Core 애플리케이션에서 데이터베이스와의 상호작용을 효율적으로 구현할 수 있습니다. 이는 애플리케이션의 데이터 관리 및 접근성을 크게 향상시킵니다.

프로젝트 리소스

https://github.com/kimdaewoong2022/MorePlants_WebAPI/tree/567f4ad7ac0fdea559a0c231bef38a264bd387ce