Alıştırma - EF Core ile SQLite veritabanı sağlayıcısını kullanma
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:
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.0EF 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-efMicrosoft.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ı dizesini ayarlamanız gerekir. Ardından veri modelinizi bir SQLite veritabanına geçireceksiniz.
Program.cs 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 için denetler. Bulamazsa bağlantı dizesi olarak
Data Source=Pizzas.dbkullanır. SQLite bu dizeyi bir dosyayla eşler.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"));burada SQLite ile değiştirin:builder.Services.AddSqlite<PizzaDb>(connectionString);EF Core geçiş aracıyla artık ilk geçişinizi
InitialCreateoluşturabilirsiniz. Tüm değişikliklerinizi kaydedin ve aşağıdaki komutu çalıştırın:dotnet ef migrations add InitialCreateEF Core, proje dizininizde veritabanı geçişlerini temsil eden kodu içeren iki dosya içeren bir Migrations klasörü oluşturur.
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 updatekomutunu çalıştırın:dotnet ef database updateProje dizininizde yeni oluşturulan 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.
dotnet run ve Swagger kullanıcı arabirimini kullanarak uygulamanızı önceden olduğu gibi test edin.
Ctrl+C komutunu kullanarak uygulamayı durdurun. Ardından yeniden çalıştırın ve değişikliklerinizin Pizzas.db kalıcı olduğunu doğrulayın.
Tebrikler! En düşük API'nize bir veritabanı bağladınız!