Entity Framework Core NuGet Packages (Paketleri) Çeşitleri

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ı sistemiPaket
SQL Server ve SQL AzureMicrosoft.EntityFrameworkCore.SqlServer
SQLiteMicrosoft.EntityFrameworkCore.Sqlite
Azure Cosmos DBMicrosoft.EntityFrameworkCore.Cosmos
PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL*
MySQLPomelo.EntityFrameworkCore.MySql*
EF Core bellek içi veritabanı**Microsoft.EntityFrameworkCore.InMemory
Database Providers

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.

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:

İşlevPaketEk bağımlılıklar
Gecikmeli yükleme ve değişiklik izleme için proxy’lerMicrosoft.EntityFrameworkCore.ProxiesCastle.Core
SQL Server için uzamsal destekMicrosoft.EntityFrameworkCore.SqlServer.NetTopologySuiteNetTopologySuite ve 
NetTopologySuite.IO.SqlServer
Bytes
SQLite için uzamsal destekMicrosoft.EntityFrameworkCore.Sqlite.NetTopologySuiteNetTopologySuite ve 
NetTopologySuite.IO.SpatiaLite
PostgreSQL için uzamsal destekNpgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuiteNetTopologySuite ve 
NetTopologySuite.IO.PostGIS 
(Npgsql.NetTopologySuite)
MySQL için uzamsal destekPomelo.EntityFrameworkCore.MySql.NetTopologySuiteNetTopologySuite
Extension

Other (Diğer)

İşlevPaket
EF Core temel işlevselliğiMicrosoft.EntityFrameworkCore
Ortak ilişkisel veritabanı işlevselliğiMicrosoft.EntityFrameworkCore.Relational
EF Core öznitelikleri için basit paket vb.Microsoft.EntityFrameworkCore.Abstractions
EF Core kullanımı için Roslyn kod çözümleyicileriMicrosoft.EntityFrameworkCore.Analyzers
Yerel SQLite bağımlılığı olmayan EF Core SQLite sağlayıcısıMicrosoft.EntityFrameworkCore.Sqlite.Core
Other

Testing (Test)

İşlevPaket
Herhangi bir veritabanı sağlayıcısı için testlerMicrosoft.EntityFrameworkCore.Specification.Tests
İlişkisel veritabanı sağlayıcıları için testlerMicrosoft.EntityFrameworkCore.Relational.Specification.Tests