Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jika Anda telah membaca semua peringatan dan Anda siap untuk mem-porting, maka berikut adalah beberapa panduan untuk membantu Anda memulai.
Menginstal paket EF Core NuGet
Untuk menggunakan EF Core, Anda menginstal paket NuGet untuk penyedia database yang ingin Anda gunakan. Misalnya, saat menargetkan SQL Server, Anda akan menginstal Microsoft.EntityFrameworkCore.SqlServer. Lihat Penyedia Database untuk detailnya.
Jika Anda berencana menggunakan migrasi, maka Anda juga harus menginstal Microsoft.EntityFrameworkCore.Tools paket.
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 bagian mana pun dari aplikasi Anda, maka menghapus instalan paket akan membantu menampilkan kesalahan kompilasi pada bagian kode yang perlu diperhatikan.
Menukar namespace layanan
Sebagian besar API yang Anda gunakan di EF6 berada di System.Data.Entity namespace (dan sub-namespace terkait). Perubahan kode pertama adalah menukar ke namespace Microsoft.EntityFrameworkCore. Anda biasanya akan mulai dengan file kode konteks turunan Anda dan kemudian bekerja dari sana, mengatasi kesalahan kompilasi saat terjadi.
Konfigurasi konteks (koneksi dan lainnya)
Seperti yang dijelaskan dalam mengonfigurasi koneksi database, EF Core memiliki lebih sedikit keajaiban dalam mendeteksi database yang akan disambungkan. Anda harus menggantikan metode OnConfiguring pada konteks turunan Anda, dan menggunakan API yang khusus untuk penyedia database untuk mengonfigurasi koneksi ke database.
Sebagian besar aplikasi EF6 menyimpan string koneksi dalam file aplikasiApp/Web.config. Di EF Core, Anda membaca string koneksi ini menggunakan ConfigurationManager API. Anda mungkin perlu menambahkan referensi ke kerangka kerja perakitan System.Configuration untuk dapat menggunakan API ini.
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["BloggingDatabase"].ConnectionString);
}
}
Peringatan Jangan pernah menyimpan kata sandi atau data sensitif lainnya dalam kode sumber atau file konfigurasi. Rahasia produksi tidak boleh digunakan untuk pengembangan atau pengujian. Rahasia tidak boleh disebarkan dengan aplikasi. Rahasia produksi harus diakses melalui cara terkontrol seperti Azure Key Vault. Rahasia pengujian dan produksi Azure dapat disimpan dan dilindungi dengan penyedia konfigurasi Azure Key Vault.
Memperbarui kode Anda
Pada titik ini, ini adalah masalah mengatasi kesalahan kompilasi dan meninjau kode untuk melihat apakah perubahan perilaku akan berdampak pada Anda.
Migrasi yang ada
Tidak benar-benar ada cara yang layak untuk memindahkan migrasi EF6 yang ada ke EF Core.
Jika memungkinkan, yang terbaik adalah mengasumsikan bahwa semua migrasi sebelumnya dari EF6 telah diterapkan ke database dan kemudian mulai memigrasikan skema dari titik itu menggunakan EF Core. Untuk melakukan ini, Anda akan menggunakan Add-Migration perintah untuk menambahkan migrasi setelah model di-port ke EF Core. Anda kemudian akan menghapus semua kode dari metode Up dan Down pada migrasi yang dibangun secara otomatis. Migrasi berikutnya akan dibandingkan dengan model ketika migrasi awal tersebut diinisialisasi.
Menguji sebuah 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.
Terakhir, tinjau kasus terperinci yang perlu dipertimbangkan saat porting untuk saran lebih lanjut tentang kasus dan skenario tertentu dalam kode Anda.