연습 - EF Core가 있는 SQLite 데이터베이스 공급자 사용

완료됨

지금까지는 데이터를 메모리 내 데이터베이스에 저장했습니다. 이 데이터베이스는 애플리케이션을 개발하는 동안 쉽게 설정하고 사용할 수 있지만 데이터가 영구적이지 않습니다. 따라서 애플리케이션이 다시 시작되면 데이터가 손실됩니다. 애플리케이션을 배포하기 전에 데이터를 데이터베이스에 유지해야 합니다.

이 연습에서는 관계형 데이터베이스를 사용하여 데이터를 저장하도록 애플리케이션을 업그레이드합니다. SQLite를 사용하여 데이터를 저장합니다.

SQLite 데이터베이스 설정

다음 섹션을 완료하여 SQLite 데이터베이스를 설정합니다.

다음 도구 및 패키지 설치

터미널에서 다음 패키지를 설치합니다.

  1. SQLite EF Core 데이터베이스 공급자: 데이터베이스 공급자라는 플러그인 라이브러리를 통해 다양한 데이터베이스에 액세스할 수 있습니다. 다음 패키지는 EF(Entity Framework) Core용 SQLite 데이터베이스 공급자입니다.

    dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0
    
  2. EF Core 도구: EF Core용 도구는 디자인 타임 개발 작업을 수행합니다. 예를 들어 이러한 도구는 마이그레이션을 만들고, 마이그레이션을 적용하고, 기존 데이터베이스를 기반으로 모델용 코드를 생성합니다.

    dotnet tool install --global dotnet-ef
    
  3. Microsoft.EntityFrameworkCore.Design: EF Core가 데이터베이스를 만들기 위한 모든 디자인 타임 논리를 포함합니다.

    dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
    

데이터베이스 생성 활성화

데이터베이스 만들기를 사용하도록 설정하려면 데이터베이스 연결 문자열을 설정해야 합니다. 그런 다음 데이터 모델을 SQLite 데이터베이스로 마이그레이션합니다.

  1. Program.csvar builder = WebApplication.CreateBuilder(args); 아래에 연결 문자열을 추가합니다.

    var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";
    

    이 코드는 Pizzas라는 연결 문자열에 대한 구성 공급자를 확인합니다. 찾을 수 없는 경우 Data Source=Pizzas.db를 연결 문자열로 사용합니다. SQLite는 이 문자열을 파일에 매핑합니다.

  2. 이 자습서의 CRUD 부분에서는 메모리 내 데이터베이스를 사용했습니다. 이제 메모리 내 데이터베이스를 영구 데이터베이스로 바꿉니다.

    빌드 서비스의 현재 메모리 내 데이터베이스 구현 builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));를 아래 SQLite 데이터베이스로 바꿉니다.

    builder.Services.AddSqlite<PizzaDb>(connectionString);
    
  3. 이제 EF Core 마이그레이션 도구를 사용하여 첫 번째 마이그레이션인 InitialCreate를 생성할 수 있습니다. 모든 변경 내용을 저장하고 다음 명령을 실행합니다.

    dotnet ef migrations add InitialCreate
    

    EF Core는 파일 두 개와 데이터베이스 마이그레이션을 나타내는 코드가 포함된 프로젝트 디렉터리에 Migrations라는 폴더를 만듭니다.

  4. 이제 마이그레이션을 완료했으므로 이를 사용하여 데이터베이스와 스키마를 만들 수 있습니다.

    터미널 창에서 다음 database update 명령을 실행하여 데이터베이스에 마이그레이션을 적용합니다.

    dotnet ef database update
    

    새로 만든 Pizzas.db 파일이 프로젝트 디렉터리에 표시됩니다.

응용 프로그램 실행 및 테스트

이제 백업 데이터베이스가 있으므로 변경 내용이 유지됩니다.

dotnet run 및 Swagger UI를 사용하기 전에 애플리케이션을 테스트합니다. Ctrl+C 명령을 사용하여 애플리케이션을 중지합니다. 그런 다음, 다시 실행하고 Pizzas.db에서 변경 내용이 계속 유지되는지 확인합니다.

축하합니다! 데이터베이스를 최소 API에 연결했습니다.