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