Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
EF Core
Entity Framework Core (EF Core), .NET için modern bir nesne veritabanı eşleyicidir. LINQ sorgularını, değişiklik izlemeyi, güncelleştirmeleri ve şema geçişlerini destekler.
EF Core, veritabanı sağlayıcısı eklenti modeli aracılığıyla SQL Server/Azure SQL Veritabanı, SQLite, Azure Cosmos DB, MySQL, PostgreSQL ve daha birçok veritabanıyla çalışır.
EF6
Entity Framework 6 (EF6), .NET Framework için tasarlanmış ancak .NET Core desteğine sahip bir nesne-ilişkisel eşleyicidir. EF6 kararlı ve desteklenen bir üründür ancak artık etkin bir şekilde geliştirilemeyecektir.
Özellik karşılaştırması
EF Core, EF6'da uygulanmayacak yeni özellikler sunar. Ancak şu anda EF Core'da tüm EF6 özellikleri uygulanmaz.
Aşağıdaki tablolarda EF Core ve EF6'da kullanılabilen özellikler karşılaştırilmektedir. Bu üst düzey bir karşılaştırmadır ve her özelliği listelemez veya farklı EF sürümlerinde aynı özellik arasındaki farkları açıklamaz.
EF Core sütunu özelliğin ilk göründüğü ürün sürümünü gösterir.
Model oluşturma
| Özellik | EF6.4 | EF Core |
|---|---|---|
| Temel sınıf eşlemesi | Evet | 1.0 |
| Parametreleri olan oluşturucular | 2.1 | |
| Özellik değeri dönüşümleri | 2.1 | |
| Anahtarsız eşlenmiş türler | 2.1 | |
| Konvansiyonlar | Evet | 1.0 |
| Özel kurallar | Evet | 7.0 |
| Veri ek açıklamaları | Evet | 1.0 |
| Fluent API | Evet | 1.0 |
| Miras: Hiyerarşi başına tablo (TPH) | Evet | 1.0 |
| Devralma: Tür başına tablo (TPT) | Evet | 5.0 |
| Devralma: Her somut sınıf için tablo (TPC) | Evet | 7.0 |
| Gölge durum özellikleri | 1.0 | |
| Alternatif tuşlar | 1.0 | |
| Çoka çok gezintiler | Evet | 5.0 |
| Birleştirme varlığı olmadan çoka çok | Evet | 5.0 |
| Anahtar oluşturma: Veritabanı | Evet | 1.0 |
| Anahtar oluşturma: İstemci | 1.0 | |
| Karmaşık/sahip olunan türler | Evet | 2.0 |
| Uzamsal veriler | Evet | 2.2 |
| Model biçimi: Kod | Evet | 1.0 |
| Veritabanından model oluşturma: Komut satırı | Evet | 1.0 |
| Modeli veritabanından güncelleştirme | Kısmi | Bekleme listesinde (#831) |
| Genel sorgu filtreleri | 2.0 | |
| Veritabanı tablo bölme | Evet | 2.0 |
| Varlık bölme | Evet | 7.0 |
| Veritabanı skaler işlev eşlemesi | Fakir | 2.0 |
| Veritabanı tablosu değerli işlev eşlemesi | Fakir | 5.0 |
| Alan eşleme | 1.1 | |
| Boş değer atanabilir başvuru türleri (C# 8.0) | 3.0 | |
| Modelin grafik görselleştirmesi | Evet | Planlı destek yok (1) |
| Grafik model düzenleyicisi | Evet | Planlı destek yok (1) |
| Model biçimi: EDMX (XML) | Evet | Planlı destek yok (1) |
| Veritabanından model oluşturma: VS sihirbazı | Evet | Planlı destek yok (1) |
Veri sorgulama
| Özellik | EF6.4 | EF Core |
|---|---|---|
| LINQ sorguları | Evet | 1.0 |
| Okunabilir oluşturulan SQL | Fakir | 1.0 |
| GroupBy çevirisi | Evet | 2.1 |
| İlgili veriler yükleniyor: Eager | Evet | 1.0 |
| İlgili veriler yükleniyor: Türetilmiş türler için istekli yükleme | 2.1 | |
| İlgili veriler yükleniyor: Gecikmeli | Evet | 2.1 |
| İlgili veriler yükleniyor: Açık | Evet | 1.1 |
| Ham SQL sorguları: Varlık türleri | Evet | 1.0 |
| Ham SQL sorguları: Anahtarsız varlık türleri | Evet | 2.1 |
| Ham SQL sorguları: LINQ ile oluşturma | 1.0 | |
| Açıkça derlenmiş sorgular | Fakir | 2.0 |
| await foreach (C# 8.0) | 3.0 | |
| Metin tabanlı sorgu dili (Entity SQL) | Evet | Planlı destek yok (1) |
Verileri kaydetme
| Özellik | EF6.4 | EF Core |
|---|---|---|
| Değişiklik izleme: Anlık görüntü | Evet | 1.0 |
| Değişiklik izleme: Bildirim | Evet | 1.0 |
| Değişiklik izleme: Proxy'ler | Evet | 5.0 |
| İzlenen duruma erişme | Evet | 1.0 |
| İyimser eşzamanlılık | Evet | 1.0 |
| Transactions | Evet | 1.0 |
| İfadelerin toplu işlenmesi | 1.0 | |
| Saklı yordam eşlemesi | Evet | 7.0 |
| Bağlantısız grafik alt düzey API'leri | Fakir | 1.0 |
| Bağlantısı kesilmiş grafik Uçtan uca | 1.0 (kısmi; #5536) |
Diğer özellikler
| Özellik | EF6.4 | EF Core |
|---|---|---|
| Göçler | Evet | 1.0 |
| Veritabanı oluşturma/silme API'leri | Evet | 1.0 |
| Tohum verileri | Evet | 2.1 |
| Bağlantı dayanıklılığı | Evet | 1.1 |
| Kesiciler | Evet | 3.0 |
| Etkinlikler | Evet | 3.0 (kısmi; #626) |
| Basit Günlük (Database.Log) | Evet | 5.0 |
| DbContext havuzlama | 2.0 |
Veritabanı sağlayıcıları (2)
| Özellik | EF6.4 | EF Core |
|---|---|---|
| SQL Server | Evet | 1.0 |
| MySQL | Evet | 1.0 |
| PostgreSQL | Evet | 1.0 |
| Oracle | Evet | 1.0 |
| SQLite | Evet | 1.0 |
| SQL Server Compact | Evet | 1.0 (3) |
| DB2 | Evet | 1.0 |
| Firebird | Evet | 2.0 |
| Jet (Microsoft Access) | 2.0 (3) | |
| Azure Cosmos DB veritabanı | 3.0 | |
| Bellek içi (test için) | 1.0 |
1 Bazı EF6 özellikleri EF Core'da uygulanmaz. Bu özellikler EF6'nın temel varlık veri modeline (EDM) bağlıdır ve/veya nispeten düşük yatırım getirisi olan karmaşık özelliklerdir. Geri bildirimleri her zaman memnuniyetle karşılarız, ancak EF Core EF6'da mümkün olmayan birçok şeyi sağlarken, EF Core'un EF6'nın tüm özelliklerini desteklemesi de mümkün değildir.
Üçüncü taraflar tarafından uygulanan 2 EF Core veritabanı sağlayıcısı, EF Core'un yeni ana sürümlerine güncelleştirilmesinde gecikebilir. Daha fazla bilgi için bkz. Veritabanı Sağlayıcıları .
3 SQL Server Compact ve Jet sağlayıcıları yalnızca .NET Framework üzerinde çalışır (.NET Core'da çalışmaz).
Desteklenen platformlar
EF Core 3.1, .NET Standard 2.0 kullanarak .NET Core ve .NET Framework üzerinde çalışır. Ancak, EF Core 5.0 .NET Framework üzerinde çalışmaz. Daha fazla ayrıntı için bkz. Platformlar .
EF6.4, çoklu hedefleme aracılığıyla .NET Core ve .NET Framework üzerinde çalışır.
Yeni uygulamalar için rehberlik
Uygulamanın yalnızca .NET Framework'te desteklenen bir şeye ihtiyacı olmadığı sürece tüm yeni uygulamalar için .NET Core üzerinde EF Core kullanın.
Mevcut EF6 uygulamaları için kılavuz
EF Core, EF6'nın yerine doğrudan bir ikame değildir. EF6'dan EF Core'a geçmek için büyük olasılıkla uygulamanızda değişiklik yapılması gerekir.
EF6 uygulamasını .NET Core'a taşırken:
- Veri erişim kodu kararlıysa ve gelişme olasılığı yoksa veya yeni özelliklere ihtiyaç duyuyorsa EF6 kullanmaya devam edin.
- Veri erişim kodu gelişiyorsa veya uygulamanın yalnızca EF Core'da mevcut yeni özelliklere ihtiyacı varsa, EF Core'a geçirin.
- EF Core'a taşıma işlemi genellikle performans için de gerçekleştirilir. Ancak, tüm senaryolar daha hızlı değildir, bu nedenle önce bazı profil oluşturma işlemleri yapın.
Daha fazla bilgi için bkz. EF6'dan EF Core'a taşıma .