Porting Model Berbasis EF6 EDMX ke EF Core
EF Core tidak mendukung format file EDMX untuk model. Opsi terbaik untuk mem-port model ini, adalah menghasilkan model berbasis kode baru dari database untuk aplikasi Anda.
Menginstal paket EF Core NuGet
Microsoft.EntityFrameworkCore.Tools
Instal paket NuGet.
Meregenerasi model
Anda sekarang dapat menggunakan fungsionalitas reverse engineer untuk membuat model berdasarkan database Yang sudah ada.
Jalankan perintah berikut di Package Manager Console (Tools –> NuGet Package Manager –> Package Manager Console). Lihat Package Manager Console (Visual Studio) untuk opsi perintah guna membuat perancah subset tabel, dll.
Scaffold-DbContext "<connection string>" <database provider name>
Misalnya, berikut adalah perintah untuk membuat perancah model dari database Blogging pada instans SQL Server LocalDB Anda.
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer
Menghapus model EF6
Anda sekarang akan menghapus model EF6 dari aplikasi Anda.
Tidak masalah untuk membiarkan paket EF6 NuGet (EntityFramework) diinstal, karena EF Core dan EF6 dapat digunakan berdampingan dalam aplikasi yang sama. Namun, jika Anda tidak berniat menggunakan EF6 di area mana pun dari aplikasi Anda, maka menghapus instalan paket akan membantu memfokuskan kesalahan kompilator pada potongan kode yang perlu diperhatikan.
Memperbarui kode Anda
Pada titik ini, ini adalah masalah mengatasi kesalahan kompilasi dan meninjau kode untuk melihat apakah perilaku berubah antara EF6 dan EF Core akan berdampak pada Anda.
Menguji port
Hanya karena aplikasi Anda dikompilasi, bukan berarti aplikasi berhasil di-port ke EF Core. Anda harus menguji semua area aplikasi Anda untuk memastikan bahwa tidak ada perubahan perilaku yang berdampak buruk pada aplikasi Anda.
Pertimbangan lain
EF Core tidak mendukung EntityClient
penyedia dan oleh karena itu setiap kueri EntitySQL harus dimigrasikan ke LINQ atau FromRawSql
.
Selain itu, tidak ada dukungan untuk entityClient string koneksi s.
Untuk pertimbangan lebih lanjut, baca panduan lengkap untuk perbedaan antara EF6 dan EF Core.