Bagikan melalui


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.