Latihan - Menggunakan penyedia database SQLite dengan EF Core

Selesai

Hingga titik ini, Anda telah menyimpan data Anda dalam database dalam memori. Database ini mudah disiapkan dan digunakan saat Anda mengembangkan aplikasi, tetapi datanya tidak persisten. Akibatnya, data akan hilang ketika aplikasi dihidupkan ulang. Sebelum menyebarkan aplikasi, Anda perlu mempertahankan data ke database.

Dalam latihan ini, Anda akan meningkatkan aplikasi Anda untuk menggunakan database relasional untuk menyimpan data. Anda akan menggunakan SQLite untuk menyimpan data Anda.

Menyiapkan database SQLite

Selesaikan bagian berikut untuk menyiapkan database SQLite.

Instal alat dan paket berikut

Di terminal, instal paket-paket berikut:

  1. Penyedia Database SQLite EF Core: Dapat mengakses berbagai database melalui pustaka plug-in yang disebut penyedia database. Paket berikut adalah penyedia database SQLite untuk Entity Framework (EF) Core.

    dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0
    
  2. Alat EF Core: Alat untuk EF Core melakukan tugas pengembangan waktu desain. Misalnya, alat ini membuat migrasi, menerapkan migrasi, dan menghasilkan kode untuk model berdasarkan database yang ada.

    dotnet tool install --global dotnet-ef
    
  3. Microsoft.EntityFrameworkCore.Design: Berisi semua logika waktu desain untuk EF Core untuk membuat database Anda.

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

Mengaktifkan pembuatan database

Untuk mengaktifkan pembuatan database, Anda perlu mengatur string koneksi database. Kemudian Anda akan memigrasikan model data Anda ke database SQLite.

  1. Di Program.cs, di bawah var builder = WebApplication.CreateBuilder(args);, tambahkan string koneksi.

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

    Kode ini memeriksa penyedia konfigurasi untuk string koneksi bernama Pizzas. Jika tidak menemukannya, itu akan menggunakan Data Source=Pizzas.db sebagai string koneksi. SQLite akan memetakan string ini ke file.

  2. Dalam bagian CRUD dari tutorial ini, Anda menggunakan database dalam memori. Sekarang Anda akan mengganti database dalam memori tersebut dengan database persisten.

    Ganti penerapan database dalam memori builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items")); Anda saat ini di layanan build Anda dengan SQLite di sini:

    builder.Services.AddSqlite<PizzaDb>(connectionString);
    
  3. Dengan alat migrasi EF Core, Anda sekarang dapat membuat migrasi pertama Anda, InitialCreate. Simpan semua perubahan Anda, lalu jalankan perintah berikut:

    dotnet ef migrations add InitialCreate
    

    EF Core membuat folder Migrasi di direktori proyek Anda yang berisi dua file dengan kode yang mewakili migrasi database.

  4. Setelah menyelesaikan migrasi, Anda dapat menggunakannya untuk membuat database dan skema Anda.

    Pada jendela terminal, jalankan perintah database update berikut untuk menerapkan migrasi ke database:

    dotnet ef database update
    

    Anda akan melihat file Pizzas.db yang baru saja dibuat di direktori proyek Anda.

Menjalankan dan menguji aplikasi

Sekarang setelah Anda memiliki database pendukung, perubahan Anda akan dipertahankan.

Uji aplikasi Anda seperti sebelumnya menggunakan dotnet run dan UI Swagger. Hentikan aplikasi dengan menggunakan perintah Ctrl+C. Kemudian jalankan lagi dan verifikasi bahwa perubahan Anda masih ada di Pizzas.db.

Selamat! Anda menghubungkan database ke API minimal Anda!