무효 클릭 IP 추적 중...
c#

[c#] Entity Framework 사용 방법(code-first)

꼬예 2022. 8. 19.

(해당 포스팅은 이전 포스팅을 읽고 왔다는 전제로 작성된 글입니다.)

 

지금까지는 데이터베이스를 선 구성한 후, 데이터베이스에 있는 값을 읽거나, 추가 삭제하는 방법에 대해 배워보았습니다.

 

이번 포스팅에서는 순서 바꿔 c#코드를 작성한 후, 그 코드를 기반으로 데이터베이스를 생성하는 방법에 대해 알아보겠습니다.  이러한 방식code-first 방식이라고 합니다.

 

1) DB생성을 위한 c# 코드 작성

 

 

우선 DbContext를 상속한 클래스를 만들어줍니다.

기존 방식과 차이가 없기 때문에 설명은 생략합니다. 

 

마찬가지로 클래스도 생성해줍니다.

 

 

2) 필요한 패키지 다운로드

code first에 직접적으로 사용되는 패키지인 EntityFrameworkCore.Tools를 추가 설치 해줍니다.

 

entityframework 설치

 

3) DB 생성 명령어 입력

아래와 같이 보기 => 다른창 => 패키지 관리자 콘솔을 클릭하여 창을 열어줍니다.

 

패키지관리자콘솔

 

패키지 관리자 콘솔add-migration (원하는 저장명)을 입력합니다. 

 

저는 add-migration FirstMigration 이라고 입력해볼게요.

 

 

혹시 아래와 같이 Build failed가 발생되는 분이 있다면,

 

솔루션 다시 빌드 하시고 명령어를 다시 실행해보시기 바랍니다.

 

 

정상적으로 migration이 되면 Build succeeded라는 문구가 나옵니다.

 

build succeed

 

이때 프로젝트 디렉토리를 보면 Migrations라는 디렉토리와 함께 두개의 .cs파일이 생긴걸 알 수 있습니다. 

 

 

특히 첫번째 파일은

 

 

db가 어떻게 구성되어있고, 변화 되어가는지 기록들이 적혀 있는 곳이라고 보면됩니다. 

 

이러한 migration파일들은 우리가 작업을 하다 수정 사항이 생겼을 경우 과거로 돌아가는 기능도 제공하니 참고 하기 바랍니다.

 

하지만 지금까지한 작업들은 실제 DB에 적용된것은 아닙니다.

 

적용을 하기 위해선 update-database 명령어를 입력해줘야 합니다.

 

4) DB 적용

 

db적용

 

아래와 같은 메세지가 나오면 정상적으로 완료가 된 것입니다. 

 

 

5) DB 확인

테이블이 잘생성되었는지 확인해보겠습니다. 

 

 

DbSet의 이름으로 기입했던 players가 테이블의 이름으로 사용된걸 확인할 수 있습니다. 

 

디자이너 보기를 통해 해당 테이블을 확인해보겠습니다.

 

 

클래스에서 지정한 프러퍼티들이 테이블의 컬럼으로 들어간걸 확인할 수 있습니다.

뿐만 아니라 프러퍼티에서 지정한 타입들이 테이블의 데이터 타입으로 지정되었습니다.

 

 

특히 ?를 통해 null값을 허용한 부분도 잘 적용된것을 확인할 수 있네요.

 

추가적으로  migration history가 담긴 테이블도 생성되니 참고하기 바랍니다.

 

+ 추가

패키지 관리자 콘솔이 아닌 PowerShell에서 사용하고 싶다면 명령어가 조금 다르다.

 

1) tool 설치

[ic]dotnet tool install --global dotnet-ef[/ic]

 

2) 경로 지정

powershell을 열면 [ic].sln[/ic]파일이 있는 경로가 최초 경로다.

 

최초 경로

 

 

한칸 더 들어가서 [ic]Program.cs[/ic]가 있는 경로로 들어가야 한다.

 

수정경로

 

3) 명령어

사용되는 명령어가 조금 다르다.

add-migration {마이그레이션 파일 이름} ⇒ dotnet ef migrations {마이그레이션 파일 이름}
update-database ⇒ dotnet ef database update

 

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글