Latihan - Gunakan 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 dimulai ulang. Sebelum menyebarkan aplikasi, Anda perlu menyimpan data ke database.

Dalam latihan ini, Anda akan meningkatkan aplikasi untuk menggunakan database relasional untuk menyimpan data Anda. 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 berikut:

  1. Penyedia Database Inti SQLite EF: Dapat mengakses banyak database yang berbeda 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 pada waktu desain. Misalnya, mereka 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 dengan database persisten.

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

    builder.Services.AddSqlite<PizzaDb>(connectionString);
    
  3. Dengan alat migrasi EF Core, Anda sekarang dapat menghasilkan 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.

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

    dotnet ef database update
    

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

Menjalankan dan menguji aplikasi

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

Uji aplikasi Anda seperti sebelum menggunakan dotnet run dan antarmuka pengguna Swagger. Hentikan aplikasi dengan menggunakan perintah Ctrl+C. Kemudian jalankan lagi dan verifikasi bahwa perubahan Anda masih bertahan di Pizzas.db.

Selamat! Anda mengaitkan database secara langsung ke API minimal Anda!