Jan 01, 1970
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 마이그레이션을 활성화하면 첫 번째 마이그레이션을 생성할 수 있습니다. 마이그레이션을 생성하려면 패키지 관리자 콘솔을 열고 다음 명령을 입력합니다.
PM> Add-Migration InitialCreate
데이터베이스 업데이트
마이그레이션을 생성한 후 새 모델과 일치하도록 데이터베이스 스키마를 업데이트할 수 있습니다. 이렇게 하려면 패키지 관리자 콘솔을 열고 다음 명령을 입력합니다.
PM> Update-Database
using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }
데이터베이스 모델 생성
프로젝트의 "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
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"); } } }
PM> Update-Database
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(); } } }
게시됨