[C#] EF Core 첫 번째 어플리케이션
- C#
- 2023. 3. 15. 00:48
참고
소개
- 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 |
이 글을 공유하기