본문 바로가기
C#/ASP.net Core MVC

2. C# DbSeed

by le_piee 2020. 1. 11.

Database Seed란?

데이터베이스의 초기값을 넣는것입니다.

 

때에 따라 어플리케이션이 초기에 실행될테 초기값을 넣어야 하는 경우가 있는데

그럴때 사용합니다.

 

이러한 방식은 초기에 대량의 데이터를 입력 할때 용의한데요

csv파일이나 json파일 등을 불러와서 입력하는 경우가 많습니다.

 

 

현재 마이그레이션이 완료 되었다는 기준으로 작성합니다

마이그레이션 방법은

https://le-piee.tistory.com/12

여기를 참고하시면 되겠습니다.

 

 

DbSeeder.cs 라는 파일을 생성합니다

 

그 다음 아래와 같이 작성합니다.

 

코드 설명으로는

 

Users테이블에 아무것도 들어 있지 않으면

List에 들어있는 값을 데이터베이스에 Range하고 Save하라는 뜻입니다.

Async Task는 비동기 전송이라는 뜻입니다.

await는 Task가 끝날때까지 기다리겠다라는 뜻입니다

 

 

이제 이렇게 작성한 class를 서비스에 추가해 줘야하는데요

 

 

Startup.cs에 들어갑니다

 

 

그리고 코드를 추가합니다

 

Transsient는 

필요할 때마다 생성되는 서비스입니다

캐시가 생성되지않고 보존이 안되는 서비스이며

DbSeeder는 한번만 필요하기에 사용하기 적합합니다

 

 

마지막으로

 

Startup.cs파일

Configure메소드에 

우리가 만든 매개변수를 추가하고,

밑에 코드까지 써줍니다.

 

 

그리고 실행 시켜보면 데이터베이스에 추가되있는걸 볼 수 있습니다.