이전 포스트/엔티티 프레임워크

마이그레이션으로 모델과 컨텍스트를 바탕으로 데이터베이스와 테이블 만들기

병고라니 2021. 1. 9. 18:48

제목이 곧 내용.

 

프로젝트새로만들기 - 빈 솔루션  - 이름은 아무거나  ㄱㄱ 

 

docs.microsoft.com/ko-kr/ef/core/

 

Entity Framework Core 개요 - EF Core

Entity Framework Core의 일반 소개 개요

docs.microsoft.com

위사이트에 있는 코드를 참고하여 만듬.

 

빈솔루션 - 우클릭 - 추가 - 새로운프로젝트  - 콘솔 앱( .NET Core) - Intro 로 만들기

 

코드는 다음과 같다.

 

BloggingContext는 데이터베이스를 가리키고

Blogs와 Posts는 테이블을 가리킨다.

 

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Intro
{

    
    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }
        public static void Main(String[] args)
        {
            using (var db = new BloggingContext())
            {
                var blogs = db.Blogs
                    .Where(b => b.Rating > 3)
                    .OrderBy(b => b.Rating)
                    .ToList();

                foreach(var blog in blogs){
                    Console.WriteLine($"url: {blog.Url}, rating: {blog.Rating}");
                }
            }
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(
                @"Server=(localdb)\mssqllocaldb;Database=Blogging;Integrated Security=True");
        }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
        public int Rating { get; set; }
        public List<Post> Posts { get; set; }
    }

    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
}

 

이상태에서 패키지를 세가지 설치해야한다. 

 

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Design

Microsoft.EntityFrameworkCore.Tools

 

위 세가지 패키지를 설치해야한다.

 

솔루션 - 콘솔프로젝트 - 종속성 우클릭 - Nuget Package설치를 클릭하여 위 세가지 패키지를 설치하자.

 

보기 - 다른창 - 패키지관리자콘솔을 클릭하여

Add-Migration InitialCreate를 입력하자

위명령어는 model을 바탕으로 Migrations 스키마를 만든다.

 

Update-Database 하면 마이그레이션 폴더대로 데이터베이스에 데이터베이스와 테이블이 만들어진다.

 

데이터베이스에 값을 수작업으로 입력해준후 출력하면 콘솔화면에 데이터가 표시되는것을 볼 수 있다. ^^