이전 포스트/엔티티 프레임워크
마이그레이션으로 모델과 컨텍스트를 바탕으로 데이터베이스와 테이블 만들기
병고라니
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 하면 마이그레이션 폴더대로 데이터베이스에 데이터베이스와 테이블이 만들어진다.
데이터베이스에 값을 수작업으로 입력해준후 출력하면 콘솔화면에 데이터가 표시되는것을 볼 수 있다. ^^