Alıştırma - EF Core ile SQLite veritabanı sağlayıcısını kullanma

Tamamlandı

Bu noktaya kadar verilerinizi bellek içi bir veritabanına kaydediyordunuz. Uygulamanızı geliştirirken bu veritabanını kolayca ayarlayabilir ve kullanabilirsiniz, ancak veriler kalıcı değildir. Sonuç olarak, uygulama yeniden başlatıldığında veriler kaybolur. Uygulamanızı dağıtmadan önce verileri bir veritabanında kalıcı hale getirmek gerekir.

Bu alıştırmada, uygulamanızı verilerinizi depolamak için ilişkisel bir veritabanı kullanacak şekilde yükselteceksiniz. Verilerinizi depolamak için SQLite kullanacaksınız.

SQLite veritabanını ayarlama

SQLite veritabanını ayarlamak için aşağıdaki bölümleri tamamlayın.

Aşağıdaki araçları ve paketleri yükleyin

Terminalde aşağıdaki paketleri yükleyin:

  1. SQLite EF Core Veritabanı Sağlayıcısı: Veritabanı sağlayıcıları olarak adlandırılan eklenti kitaplıkları aracılığıyla birçok farklı veritabanına erişebilir. Aşağıdaki paket, Entity Framework (EF) Core için SQLite veritabanı sağlayıcısıdır.

    dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0
    
  2. EF Core araçları: EF Core araçları tasarım zamanı geliştirme görevlerini gerçekleştirir. Örneğin, geçişler oluşturur, geçişleri uygular ve var olan bir veritabanını temel alan bir model için kod oluşturur.

    dotnet tool install --global dotnet-ef
    
  3. Microsoft.EntityFrameworkCore.Design: EF Core'un veritabanınızı oluşturması için tüm tasarım zamanı mantığını içerir.

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

Veritabanı oluşturmayı etkinleştirme

Veritabanı oluşturmayı etkinleştirmek için veritabanı bağlantı dizesi ayarlamanız gerekir. Ardından veri modelinizi bir SQLite veritabanına geçireceksiniz.

  1. Program.cs dosyasında, altında var builder = WebApplication.CreateBuilder(args);bir bağlantı dizesi ekleyin.

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

    Bu kod, yapılandırma sağlayıcısını Pizzas adlı bir bağlantı dizesi denetler. Bir tane bulamazsa, bağlantı dizesi olarak kullanırData Source=Pizzas.db. SQLite bu dizeyi bir dosyayla eşler.

  2. Bu öğreticinin CRUD bölümünde bellek içi bir veritabanı kullandınız. Şimdi bellek içi veritabanını kalıcı bir veritabanıyla değiştireceksiniz.

    Derleme hizmetlerinizdeki geçerli bellek içi veritabanı uygulamanızı builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items")); buradaki SQLite ile değiştirin:

    builder.Services.AddSqlite<PizzaDb>(connectionString);
    
  3. EF Core geçiş aracıyla artık ilk geçişinizi oluşturabilirsiniz. InitialCreate Tüm değişikliklerinizi kaydedin ve aşağıdaki komutu çalıştırın:

    dotnet ef migrations add InitialCreate
    

    EF Core, proje dizininizde veritabanı geçişlerini temsil eden kodu içeren iki dosya içeren bir Migrations klasörü oluşturur.

  4. Geçişi tamamladığınıza göre, veritabanınızı ve şemanızı oluşturmak için bu geçişi kullanabilirsiniz.

    Bir terminal penceresinde, veritabanına geçişleri uygulamak için aşağıdaki database update komutu çalıştırın:

    dotnet ef database update
    

    Proje dizininizde yeni oluşturulmuş bir Pizzas.db dosyası görmeniz gerekir.

Uygulamayı çalıştırma ve test edin

Artık bir yedekleme veritabanınız olduğuna göre değişiklikleriniz kalıcı hale getirilecektir.

Uygulamanızı ve Swagger kullanıcı arabirimini kullanmadan dotnet run önce olduğu gibi test edin. Ctrl+C komutunu kullanarak uygulamayı durdurun. Ardından yeniden çalıştırın ve pizzas.db dosyasında değişikliklerinizin hala kalıcı olduğunu doğrulayın.

Tebrikler! En düşük API'nize bir veritabanı bağladınız!