[C#] EF Core 첫 번째 어플리케이션

참고


소개

  • Code-First 방식으로 EF Core 첫 번째 어플리케이션을 만들어 보도록 하겠습니다.

개발 환경

  • 개발 환경은 다음과 같습니다.
    • OS : Windows 11
    • .NET Version : .NET 6*
    • IDE : Visual Studio 2022
    • Database : PostgreSQL

콘솔 프로그램 생성

  • Visual Studio 2022 를 실행하고, C# 콘솔 프로그램을 하나 생성합니다.


Npgsql.EntityFrameworkCore NuGet Package 설치

  • 저는 Database를 PostgreSQL을 사용하기 때문에, Npgsql.EntityFrameworkCore NuGet Package 를 설치 진행하였습니다.


모델 만들기

  • Entity Framework에는 기본 데이터베이스와 통신 하기 위한 모델이 있어야 합니다.
  • 도메인 클래스의 모양, 데이터 주석 및 Fluent API 구성을 기반으로 모델을 빌드합니다.
  • EF 모델에는 개념적 모델, 저장소 모델 및 개념적 모델과 저장소 모델 간의 매핑의 세 부분이 포함 됩니다.
  • 코드 우선 접근 방식에서는 EF는 도메인 클래스, 컨텍스트 클래스 및 구성을 기반으로 개념적 모델을 빌드합니다.
  • EF Core는 사용하는 공급자를 기반으로 스토리지 모델 및 매핑을 빌드합니다.
  • 예제를 위하여 Student, Course 2개의 모델을 생성하였습니다.
public class Student
{
    public int StudentId { get; set; }
    public string Name { get; set; }
}

public class Course
{
    public int CourseId { get; set; }
    public string CourseName { get; set; }
}

DBContext 생성

  • 다음으로 DBContext를 파생하여 컨텍스트 클래스를 생성해야 합니다.
  • 다음 SchoolContext.cs 클래스는 컨텍스트 클래스라고 합니다.
using Microsoft.EntityFrameworkCore;

namespace EFCoreSample
{
    public class SchoolContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseNpgsql(@"Server=localhost;Database=postgres;Port=5432;User Id=postgres;Password=postgres");
        }

        public DbSet<Student> Students { get; set; }
        public DbSet<Course> Courses { get; set; }
    }
}

마이그레이션 작업

  • 앞서 Student, Course 관련하여 C# 코드로 클래스 작성을 완료 하였습니다.
  • 이제는 실제로 해당 클래스들을 PostgreSQL 데이터베이스에 매핑하여 테이블 생성 할 수 있도록 마이그레이션 작업을 진행해야 합니다.
  • 마이그레이션 작업 순서는 다음과 같습니다.

EntityFrameworkCore.Tools NuGet Package 설치

  • Microsoft.EntityFrameworkCore.Tools NuGet Package 설치를 진행해야 합니다.


마이그레이션 명령어 입력

  • Microsoft.EntityFrameworkCore.Tools NuGet Package 설치가 완료 되었으면, 다음 명령어를 실행하여 Migration 코드가 생성되도록 진행합니다.
  • 해당 명령어를 실행하기 위해서는 Tools -> NuGet Package Manager -> Package Manager Console 을 실행하여 명령어를 입력합니다.
> Add-Migration InitialDatabase
  • 위 명령어가 성공적으로 이루어 지면, 다음과 같이 Migration 파일이 생성됩니다.

  • 이제 해당 정보를 PostgreSQL 데이터베이스에 Update 진행합니다.
  • Update 명령어는 다음과 같습니다.
> Update-Database


PostgreSQL 테이블 확인

  • 실제로 PostgreSQL 접속하여, postgres 데이터베이스 안에 Student, Course 2개의 테이블이 생성되었는지 확인 합니다.
  • 확인 결과, 정상적으로 2개의 테이블이 생성된 것을 확인할 수 있습니다.


728x90

'C#' 카테고리의 다른 글

[C#] EF Core - Fluent API 1:N 관계  (0) 2023.03.19
[C#] EF Core - Fluent API 1:1 관계  (0) 2023.03.18
[C#] Entity Framework Core 란  (1) 2023.03.14
[C#] EF Core CRUD  (0) 2023.03.13
[C#] EF Core - DbContext  (0) 2023.03.11

이 글을 공유하기

댓글

Designed by JB FACTORY