paint-brush
EF Core 마이그레이션: 시작을 위한 단계별 가이드~에 의해@ssukhpinder
3,005 판독값
3,005 판독값

EF Core 마이그레이션: 시작을 위한 단계별 가이드

~에 의해 Sukhpinder Singh8m2023/03/09
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

EF Core는 개발자가 데이터베이스와 상호 작용할 수 있는 ORM(객체 관계형 매핑) 프레임워크입니다. EF Core의 필수 기능 중 하나는 데이터베이스 마이그레이션을 처리하는 기능입니다. 이 문서에서는 EF Core 마이그레이션, 이것이 중요한 이유, 예제와 함께 이를 사용하는 방법을 보여줍니다.
featured image - EF Core 마이그레이션: 시작을 위한 단계별 가이드
Sukhpinder Singh HackerNoon profile picture

EF Core(Entity Framework Core)는 개발자가 .NET 개체를 사용하여 데이터베이스와 상호 작용할 수 있도록 하는 ORM(개체 관계형 매핑) 프레임워크입니다. EF Core의 필수 기능 중 하나는 데이터베이스 마이그레이션을 처리하는 기능입니다.

전제 조건

  • 기본적인 C# 프로그래밍 언어 지식.
  • 기본 OOPS 개념 이해


이 문서에서는 EF Core 마이그레이션이 중요한 이유와 이를 사용하는 방법을 예제와 함께 설명합니다. 따라서 시작하려면 다음을 수행하십시오.


C# 소개


C#은 꽤 오랫동안 사용되어 왔으며 계속해서 개발되어 더욱 향상된 기능을 제공하고 있습니다. Medium.com

학습 목표

  • 예제와 함께 EF Core 마이그레이션을 사용하는 방법


  • EF Core 마이그레이션이 중요한 이유

시작하기

EF Core 마이그레이션은 시간 경과에 따른 데이터베이스 스키마 변경 사항을 관리하는 방법입니다. 데이터베이스 모델을 변경하는 경우(예: 테이블이나 열 추가 또는 제거) 해당 변경 사항을 설명하는 마이그레이션을 생성할 수 있습니다.


그런 다음 마이그레이션을 사용하여 새 모델과 일치하도록 데이터베이스 스키마를 업데이트합니다.

EF Core 마이그레이션이 중요한 이유는 무엇입니까?

EF Core 마이그레이션은 데이터를 보존하면서 시간이 지남에 따라 데이터베이스 스키마를 발전시킬 수 있기 때문에 필수적입니다.


마이그레이션이 없으면 모델을 변경할 때마다 데이터베이스 스키마를 수동으로 수정해야 하므로 시간이 많이 걸리고 오류가 발생하기 쉽습니다.


마이그레이션은 또한 변경 사항을 쉽게 추적하고 필요한 경우 이전 버전으로 롤백할 수 있도록 데이터베이스 스키마 버전을 지정하는 방법을 제공합니다.

EF Core 마이그레이션을 사용하는 방법은 무엇입니까?

EF Core 마이그레이션을 사용하려면 다음 몇 가지 단계를 수행해야 합니다.


  1. 새 EF Core 프로젝트를 만듭니다. 첫 번째 단계는 Visual Studio에서 새 EF Core 프로젝트를 만드는 것입니다. "새 프로젝트 만들기"를 선택한 다음 "ASP.NET Core 웹 애플리케이션"을 선택하고 "웹 애플리케이션(모델-뷰-컨트롤러)" 템플릿을 선택하면 됩니다.


  2. 데이터베이스 컨텍스트를 만듭니다. 다음 단계는 데이터베이스 컨텍스트 클래스를 만드는 것입니다. 이 클래스는 .NET 개체와 데이터베이스 간의 상호 작용을 관리합니다. 데이터베이스 컨텍스트를 만들려면 프로젝트에서 새 클래스를 만들고 DbContext 클래스에서 상속합니다.


 public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } }


데이터베이스 모델 생성

데이터베이스 컨텍스트를 생성한 후에는 데이터베이스 모델을 생성해야 합니다. 이 모델은 데이터베이스의 구조를 나타내며 EF Core에서 데이터베이스 테이블과 열을 생성하는 데 사용됩니다.


데이터베이스 모델을 생성하려면 프로젝트에서 새 클래스를 생성하고 해당 속성을 데이터베이스 필드로 정의합니다.


 public class MyModel { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }


EF Core 마이그레이션 활성화

다음으로, 프로젝트에서 EF Core 마이그레이션을 활성화해야 합니다. 이렇게 하려면 패키지 관리자 콘솔을 열고 다음 명령을 입력합니다.


 PM> Install-Package Microsoft.EntityFrameworkCore.Tools


이 패키지에는 EF Core 마이그레이션을 생성하고 관리하는 데 필요한 도구가 포함되어 있습니다.


마이그레이션 생성

EF Core 마이그레이션을 활성화하면 첫 번째 마이그레이션을 생성할 수 있습니다. 마이그레이션을 생성하려면 패키지 관리자 콘솔을 열고 다음 명령을 입력합니다.


 PM> Add-Migration InitialCreate


그러면 데이터베이스 모델에 대한 변경 사항을 설명하는 "InitialCreate"라는 새 마이그레이션이 생성됩니다. 프로젝트의 "Migrations" 폴더에서 마이그레이션 내용을 볼 수 있습니다.


데이터베이스 업데이트

마이그레이션을 생성한 후 새 모델과 일치하도록 데이터베이스 스키마를 업데이트할 수 있습니다. 이렇게 하려면 패키지 관리자 콘솔을 열고 다음 명령을 입력합니다.


 PM> Update-Database


그러면 데이터베이스에 마이그레이션이 적용되고 해당 스키마가 업데이트됩니다.

EF Core 마이그레이션을 사용하는 예를 살펴보겠습니다. "Id"와 "Name"이라는 두 개의 열이 있는 간단한 "Students" 테이블을 생성한다고 가정합니다. Visual Studio에서 새 ASP.NET Core 웹 애플리케이션 프로젝트를 만드는 것부터 시작하겠습니다.


  1. 새 EF Core 프로젝트를 만듭니다. Visual Studio에서 새 ASP.NET Core 웹 애플리케이션 프로젝트를 만듭니다. "웹 애플리케이션(모델-뷰-컨트롤러)" 템플릿을 선택하고 인증을 위해 "개별 사용자 계정"을 선택합니다. 프로젝트 이름을 "EFCoreMigrationsExample"로 지정합니다.


  2. 데이터베이스 컨텍스트를 만듭니다. 프로젝트의 "Models" 폴더에 "MyDbContext"라는 새 클래스를 만들고 DbContext 클래스에서 상속합니다.


 using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }


"Students" 속성은 데이터베이스의 "Students" 테이블을 나타내는 DbSet입니다.


데이터베이스 모델 생성

프로젝트의 "Models" 폴더에 새 "Student" 클래스를 생성하고 해당 속성을 정의합니다.

 namespace EFCoreMigrationsExample.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } }


EF Core 마이그레이션 활성화

패키지 관리자 콘솔을 열고 다음 명령을 입력하여 EF Core 도구 패키지를 설치합니다.

 PM> Install-Package Microsoft.EntityFrameworkCore.Tools


마이그레이션 생성

패키지 관리자 콘솔을 열고 다음 명령을 입력하여 마이그레이션을 만듭니다.

 PM> Add-Migration InitialCreate


그러면 데이터베이스 모델에 대한 변경 사항을 설명하는 "InitialCreate"라는 새로운 마이그레이션이 생성됩니다.


마이그레이션 파일은 다음과 같아야 합니다.

 using Microsoft.EntityFrameworkCore.Migrations; namespace EFCoreMigrationsExample.Migrations { public partial class InitialCreate : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Students", columns: table => new { Id = table.Column<int>(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column<string>(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Students", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Students"); } } }


마이그레이션을 수행하면 "Id" 및 "Name" 열이 포함된 "Students"라는 새 테이블이 생성됩니다.

데이터베이스 업데이트 패키지 관리자 콘솔을 열고 다음 명령을 입력하여 데이터베이스 스키마를 업데이트합니다.


 PM> Update-Database


그러면 데이터베이스에 마이그레이션이 적용되고 해당 스키마가 업데이트됩니다.


이제 EF Core를 사용하여 데이터베이스에서 학생을 추가, 업데이트 및 삭제할 수 있습니다. 예를 들어 다음과 같이 데이터베이스에 새 학생을 추가할 수 있습니다.

 using EFCoreMigrationsExample.Models; namespace EFCoreMigrationsExample.Controllers { public class HomeController : Controller { private readonly MyDbContext _context; public HomeController(MyDbContext context) { _context = context; } public IActionResult Index() { var student = new Student { Name = "John" }; _context.Students.Add(student); _context.SaveChanges(); return View(); } } }


이 코드는 Student 클래스의 새 인스턴스를 만들고 해당 Name 속성을 "John"으로 설정합니다. 그런 다음 학생을 Students DbSet에 추가하고 변경 사항을 데이터베이스에 저장합니다.

결론

EF Core 마이그레이션은 애플리케이션에서 데이터베이스 스키마 변경 사항을 관리하는 편리한 방법을 제공합니다.


이 문서에서는 DbContext 만들기, 모델 정의, 마이그레이션 만들기, 데이터베이스 스키마 업데이트를 포함하여 EF Core 마이그레이션을 사용하여 간단한 데이터베이스 스키마를 만드는 방법을 보여줍니다.


이는 EF Core가 수행할 수 있는 작업의 시작일 뿐입니다. EF Core를 사용하여 데이터를 쿼리 및 조작하고, 테이블 간의 복잡한 관계를 만드는 등의 작업을 수행할 수 있습니다. 사용하기 쉽고 다양한 기능을 갖춘 EF Core는 .NET에서 데이터 기반 애플리케이션을 구축하기 위한 탁월한 선택입니다.


이 문서는 EF Core 마이그레이션을 시작하는 데 도움이 되었습니다. 질문이나 의견이 있으시면 아래에 남겨주세요. 즐거운 코딩하세요!

나를 따라와

C# 출판물 , 링크드인 , 인스타그램 , 트위터 , Dev.to


여기에도 게시됨