Entity Framework Core Paketleri 4 başlık altında gruplanırlar. Bu yazımızda kısa kısa bu paketlerin nasıl gruplandığına özelliklerine değineceğim.
Paketlerin özelliklerine geçmeden önce bir dip not bırakmak istiyorum. Bir proje geliştirirken projeye dahil edeceğinizin tüm Entity Framework Core paketlerinin aynı sürümünü yüklemeye dikkat edin. Ayrıca yüklediğiniz paket sürümüyle kullanacağınız framework sürümünde uygunluğunu kontrol ediniz. Örneğin, Microsoft.EntityFrameworkCore.SqlServer’ın 5.0.3 sürümü yüklüyse, diğer tüm Microsoft.EntityFrameworkCore.* paketleri de 5.0.3’te olmalıdır.
Database Providers (Veritabanı Sağlayıcıları)
Bilindiği üzere Entity Framework Core bir çok farklı veri tabanı sistemlerini destekler. Her sisteminin kendisine ait NuGet paketi vardır. Geliştireceğimiz uygulama üzerinden bağlanmak istediğimiz veri tabanı programına uygun paketi yüklemeniz gerekmektedir.
Veritabanı sistemi | Paket |
---|---|
SQL Server ve SQL Azure | Microsoft.EntityFrameworkCore.SqlServer |
SQLite | Microsoft.EntityFrameworkCore.Sqlite |
Azure Cosmos DB | Microsoft.EntityFrameworkCore.Cosmos |
PostgreSQL | Npgsql.EntityFrameworkCore.PostgreSQL* |
MySQL | Pomelo.EntityFrameworkCore.MySql* |
EF Core bellek içi veritabanı** | Microsoft.EntityFrameworkCore.InMemory |
Tools (Araçlar)
Entity Framework Core NuGet paketlerinin Araçlar grubunda bulunan paketleri EF Core Migrations ve Scaffolding (Database First) gibi kavramları gerçekleştirilebilmesini sağlayan yardımcı araçları yükler.
- Microsoft.EntityFrameworkCore.Tools : Package Manager Console veya PowerShell üzerinden işlemleri gerçekleştirebilmemiz için destek sağlar.
- Microsoft.EntityFrameworkCore.Design : Cross-Platform Comman Line araçlarını kullanabilmek için destek sağlar.
Extension (Eklenti)
HEM Microsoft hem de üçüncü taraflar tarafından NuGet paketleri olarak yayımlanan EF Core için birçok uzantı vardır. Yaygın olarak kullanılan paketler şunlardır:
İşlev | Paket | Ek bağımlılıklar |
---|---|---|
Gecikmeli yükleme ve değişiklik izleme için proxy’ler | Microsoft.EntityFrameworkCore.Proxies | Castle.Core |
SQL Server için uzamsal destek | Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite | NetTopologySuite ve NetTopologySuite.IO.SqlServer Bytes |
SQLite için uzamsal destek | Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite | NetTopologySuite ve NetTopologySuite.IO.SpatiaLite |
PostgreSQL için uzamsal destek | Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite | NetTopologySuite ve NetTopologySuite.IO.PostGIS (Npgsql.NetTopologySuite) |
MySQL için uzamsal destek | Pomelo.EntityFrameworkCore.MySql.NetTopologySuite | NetTopologySuite |
Other (Diğer)
İşlev | Paket |
---|---|
EF Core temel işlevselliği | Microsoft.EntityFrameworkCore |
Ortak ilişkisel veritabanı işlevselliği | Microsoft.EntityFrameworkCore.Relational |
EF Core öznitelikleri için basit paket vb. | Microsoft.EntityFrameworkCore.Abstractions |
EF Core kullanımı için Roslyn kod çözümleyicileri | Microsoft.EntityFrameworkCore.Analyzers |
Yerel SQLite bağımlılığı olmayan EF Core SQLite sağlayıcısı | Microsoft.EntityFrameworkCore.Sqlite.Core |
Testing (Test)
İşlev | Paket |
---|---|
Herhangi bir veritabanı sağlayıcısı için testler | Microsoft.EntityFrameworkCore.Specification.Tests |
İlişkisel veritabanı sağlayıcıları için testler | Microsoft.EntityFrameworkCore.Relational.Specification.Tests |