
엔티티프레임워크를 사용하여 테이블 데이터의 제약조건을 설정해 보겠습니다.
애플리케이션 생성
.NET web-API 생성하기
개발도구 설치하기 .NET을 이용하여 웹애플리케이션을 만들기 위해서는 .NET에서 제공하는 개발도구가 필요합니다. 개발도구 다운로드는 아래 링크에서 가능합니다. .NET | Free. Cross-platform. Open Sour
jin-co.tistory.com
데이터베이스 생성하기
Sqlite 사용하기 - 코드 우선 방식
.NET은 데이터베이스를 생성할 때 작성된 코드를 통해 데이터베이스를 생성하는 Code first (코드우선) 방식과 데이터베이스의 데이터를 바탕으로 코드를 작성하는 data first (데이터 우선) 방식을 제
jin-co.tistory.com
제약조건 설정하기
제약조건은 'IEntityTypeConfiguration'인터페이스를 사용하여 콘텍스트 파일에서 설정합니다. 아래처럼 인터페이스를 추가하고

구현하면 아래와 같이 제약조건을 추가할 수 있는 메서드가 생성됩니다 (원래 밑에 생성되는데 위로 옮겼습니다).

▶ 제약조건 추가
제약조건 추가는 아래 코드를 사용하여 각 개체 및 개체의 속성에 대해 가능합니다.
builder.Property()
builder.Property(p => p.Description).HasMaxLength(200);
▶ 타입 추가
타입 추가는 아래 코드를 사용하여 각 개체의 속성에 대해 가능합니다.
builder.Property(d => d.Fee).HasColumnType("decimal(18,2)");
예를 들어, Sqlite의 경우 decimal 타입이 존재하지 않는 데 아래와 같이 해당 타입설정이 가능합니다.

※ 스패너 아이콘으로 표시는 것들이 속성입니다.


마지막으로 설정을 사용하기 위해 아래 코드를 콘텍스트 클래스에 추가합니다.
using System.Reflection;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());
}

※ 구성폴더를 만들어 옮기면 콘텍스트 파일이 복잡 해 지는 것을 방지할 수 있습니다.
폴더생성

클래스생성

구성파일 작성 (구성파일)

기존 설정대체 코드 추가 (콘텍스트파일)

이상으로 데이터베이스 생성 시 테이블 필드에 제약조건을 추가하는 방법을 보았습니다.
'백엔드 > 닷넷' 카테고리의 다른 글
서버 아키텍처 - 엠브이씨 (2) | 2023.03.29 |
---|---|
.NET - 프로그램 파일 정리하기: 서비스 설정 익스텐션 만들기 (0) | 2023.03.08 |
데이터베이스 관계 추가하기 (참조, 종속) (0) | 2023.02.19 |
서버 아키텍처 - 프로젝트 분산하기 (0) | 2023.02.13 |
자동 데이터베이스 생성 및 데이터 넣기 (0) | 2023.02.11 |