EF6 EDMX Tabanlı Modeli EF Core'a Taşıma

EF Core, modeller için EDMX dosya biçimini desteklemez. Bu modelleri taşımanın en iyi seçeneği, uygulamanız için veritabanından yeni bir kod tabanlı model oluşturmaktır.

EF Core NuGet paketlerini yükleme

Microsoft.EntityFrameworkCore.Tools NuGet paketini yükleyin.

Modeli yeniden oluşturma

Artık mevcut veritabanınızı temel alan bir model oluşturmak için tersine mühendislik işlevini kullanabilirsiniz.

Paket Yöneticisi Konsolu'nda aşağıdaki komutu çalıştırın (Araçlar –> NuGet Paket Yöneticisi –> Paket Yöneticisi Konsolu). Tabloların bir alt kümesinin iskelesini oluşturmak için komut seçenekleri için bkz. Paket Yöneticisi Konsolu (Visual Studio).

Scaffold-DbContext "<connection string>" <database provider name>

Örneğin, SQL Server LocalDB örneğinizdeki Blog veritabanından bir modelin iskelesini oluşturma komutu aşağıda verilmiştir.

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer

EF6 modelini kaldırma

Şimdi EF6 modelini uygulamanızdan kaldırabilirsiniz.

EF Core ve EF6 aynı uygulamada yan yana kullanılabildiğinden EF6 NuGet paketinin (EntityFramework) yüklü bırakılması normaldir. Ancak, EF6'yı uygulamanızın herhangi bir alanında kullanmayı düşünmüyorsanız, paketin kaldırılması derleyici hatalarını dikkat gerektiren kod parçalarına odaklamanıza yardımcı olur.

Kodunuzu güncelleştirme

Bu noktada, EF6 ile EF Core arasındaki davranışın sizi etkileyip etkilemediğini görmek için derleme hatalarını ele almak ve kodu gözden geçirmek önemlidir.

Bağlantı noktasını test edin

Uygulamanızın derlenmiş olması, EF Core'a başarıyla taşınabilir olduğu anlamına gelmez. Davranış değişikliklerinden hiçbirinin uygulamanızı olumsuz etkilemediğinden emin olmak için uygulamanızın tüm alanlarını test etmeniz gerekir.

Diğer konular

EF Core sağlayıcıyı EntityClient desteklemez ve bu nedenle herhangi bir EntitySQL sorgusu LINQ veya FromRawSqlöğesine geçirilmelidir.

Ayrıca, EntityClient bağlantı dizesi s için destek yoktur.

Daha fazla bilgi için EF6 ile EF Core arasındaki farklar için kılavuzun tamamını okuyun.