EF Core'a bakın

Tamamlandı

Entity Framework Core (EF Core), nesne ilişkisel eşleyicidir (ORM). ORM, kodda uyguladığınız etki alanı modeli ile veritabanı arasında bir katman sağlar. EF Core, .NET düz eski Ortak Çalışma Zamanı Dili (CLR) nesneleri (POCO'lar) ve kesin olarak yazılan Dil Tümleşik Sorgusu (LINQ) söz dizimini kullanarak veritabanıyla etkileşim kurmanızı sağlayan bir veri erişim API'sidir.

EF Core'da veritabanı .NET POCO'larının arkasında özetlenmiştir. EF Core, temel alınan veritabanıyla doğrudan etkileşimi işler. Bu API'yi kullandığınızda, istekleri veritabanına çevirip SQL yazmak için daha az zaman harcayabilir ve önemli iş mantığına odaklanmaya daha fazla zaman ayırabilirsiniz.

EF Core ile şunları yapabilirsiniz:

  • Verileri C# nesneleri (varlıklar) olarak yükleyin.
  • Varlıklardaki yöntemleri çağırarak veri ekleyin, değiştirin ve silin.
  • Birden çok veritabanı tablosunu tek bir C# varlığıyla eşleyin.
  • Birden çok kullanıcı aynı anda aynı kaydı güncelleştirmeye çalıştığında ortaya çıkan eşzamanlılık sorunlarını işleyin.
  • Veritabanını sorgulamak için kesin olarak yazılan LINQ (System.Linq) söz dizimini kullanın.
  • SQL Server, SQLite, Azure Cosmos DB, PostgreSQL, MySQL ve daha fazlası dahil olmak üzere birden çok veritabanına erişin.
  • Mevcut bir veritabanından etki alanı modelinizi oluşturun.
  • Veritabanı şemanızı etki alanı modelinize göre yönetin.
  • Tek bir yöntem çağrısı kullanarak ilgili varlıkların karmaşık, derin veya geniş nesne grafiklerinde değişiklikleri işleyin.

EF Core mimarisini gözden geçirme

Aşağıdaki diyagramda EF Core mimarisi gösterilmiştir:

Entity Framework Core mimarisindeki bileşenleri ve işlemleri gösteren diyagram.

DbContext , bir iş birimini temsil eden özel bir sınıftır. DbContext seçenekleri, bağlantı dizelerini, günlüğe kaydetmeyi ve etki alanınızı veritabanına eşlemek için kullanılan modeli yapılandırmak için kullanabileceğiniz yöntemler sağlar.

sınıfından DbContexttüretilen sınıflar:

  • Veritabanı ile yapılan etkin bir oturumu temsil eder.
  • Varlıkların örneklerini kaydeder ve sorgular.
  • Veritabanındaki tabloları temsil eden türdeki DbSet<T> özellikleri ekleyin.

EF Core Sağlayıcısı, nesne grafı değişikliklerini SQL’ye çevirir.

Veritabanı sağlayıcısı:

  • SQL Server, Azure Cosmos DB veya PostgreSQL gibi belirli bir veritabanı altyapısı için tasarlanmış bir eklenti kitaplığıdır.
  • Yöntem çağrılarını ve LINQ sorgularını veritabanının yerel SQL diyalektine çevirir.
  • Veritabanı altyapısına yönelik benzersiz işlevleri etkinleştirmek için EF Core’u genişletir.

Veritabanı şemalarını yönetme

EF Core, EF Core modelinizi ve veritabanı şemanızı eşitlenmiş durumda tutmanın iki birincil yolunu sağlar:

  • Geçişler (gerçeklik kaynağı olarak model )
  • Tersine mühendislik (gerçeğin kaynağı olarak veritabanı )

Bu seçenekler arasında seçim yapmak için EF Core modelinizin mi yoksa veritabanı şemasının mı doğrunun kaynağı olduğuna karar verin.

Geçişler

Gerçek dünyadaki projelerde, uygulama özellikleri uygulandıkça veri modelleri değişir. Yeni varlıklar eklenip kaldırıldıkçe veritabanı şemalarının buna göre değiştirilmesi gerekir. EF Core geçişleri özelliği, veritabanındaki mevcut verileri korurken uygulamanın veri modeliyle eşitlenmiş durumda tutmak için veritabanı şemasını artımlı olarak güncelleştirmenin bir yolunu sağlar.

Veri modeli değişikliği yapıldığında geliştirici, ilgili geçişi eklemek için EF Core araçlarını kullanır. EF Core, farklılıkları belirlemek için geçerli modeli önceki modelin anlık görüntüsüyle karşılaştırır. Değişiklikleri uygulamak için C# kodu oluşturulur. C# dosyaları özel davranışlar veya tohum verileri için değiştirilebilir. Dosyalar, diğer kaynak dosyalar gibi projenizin kaynak denetiminde izlenir.

Yeni bir geçiş oluşturulduktan sonra veritabanına çeşitli yollarla uygulanabilir. EF Core, uygulanan tüm geçişleri özel bir geçmiş tablosuna kaydeder. Geçmiş tablosu, hangi geçişlerin uygulandığının kaydını tutar.

Tersine mühendislik

Tersine mühendislik, varlık modeli sınıflarını ve veritabanı şemasını temel alan bir DbContext sınıfın iskelesini oluşturma işlemidir. Bu yaklaşım genellikle bir veritabanı yöneticisi tarafından yönetilen mevcut veya paylaşılan veritabanlarında kullanılır.

Sonraki ünitede, geçiş kullanarak EF Core'u kullanmaya başlayacağız.

Bilginizi ölçün

1.

Hangi sınıf, veritabanınızı yapılandırmak ve veritabanınızla etkileşim kurmak için kullanabileceğiniz temel bir işlem kümesi sağlar?