Kerangka Kerja Entitas - Migrasi
Di Entity Framework 5 dan versi sebelumnya dari Entity Framework, kode dipisahkan antara pustaka inti (terutama System.Data.Entity.dll) yang dikirim sebagai bagian dari .NET Framework, dan pustaka tambahan (terutama EntityFramework.dll) didistribusikan dan dikirim menggunakan NuGet seperti yang ditunjukkan pada diagram berikut.
Dalam Entity Framework 6, API inti yang sebelumnya merupakan bagian dari kerangka .NET juga dikirimkan dan didistribusikan sebagai bagian dari paket NuGet.
Ini diperlukan untuk memungkinkan Entity Framework dibuat open source. Namun, sebagai konsekuensinya, aplikasi perlu dibangun kembali setiap kali ada kebutuhan untuk memigrasi atau meningkatkan aplikasi Anda dari versi lama Entity Framework ke EF 6.
Proses migrasi sangat mudah jika aplikasi Anda menggunakan DbContext, yang dikirimkan dalam EF 4.1 dan yang lebih baru. Tetapi jika aplikasi Anda adalah ObjectContext, maka dibutuhkan sedikit lebih banyak pekerjaan.
Mari kita lihat langkah-langkah berikut yang perlu Anda lakukan untuk meningkatkan aplikasi yang ada ke EF6.
Step 1 - Langkah pertama adalah menargetkan .NET Framework 4.5.2 dan kemudian klik kanan pada proyek Anda dan pilih properti.
Step 2 - Klik kanan pada proyek Anda lagi dan pilih Kelola Paket NuGet ...
Step 3- Di bawah tab Online pilih EntityFramework dan klik Install. Pastikan bahwa referensi perakitan untuk System.Data.Entity.dll dihapus.
Ketika Anda menginstal paket EF6 NuGet, itu akan secara otomatis menghapus semua referensi ke System.Data.Entity dari proyek Anda untuk Anda.
Step 4 - Jika Anda memiliki model yang dibuat dengan EF Designer, Anda juga perlu memperbarui templat pembuatan kode untuk menghasilkan kode yang kompatibel dengan EF6.
Step 5 - Di Solution Explorer Anda di bawah file edmx Anda, hapus template pembuatan kode yang ada yang biasanya akan diberi nama <edmx_file_name> .tt dan <edmx_file_name> .Context.tt.
Step 6 - Buka model Anda di EF Designer, klik kanan pada permukaan desain dan pilih Tambahkan Item Pembuatan Kode ...
Step 7 - Tambahkan templat pembuatan kode EF 6.x yang sesuai.
Ini juga akan menghasilkan kode yang kompatibel dengan EF6 secara otomatis.
Jika aplikasi Anda menggunakan EF 4.1 atau yang lebih baru, Anda tidak perlu mengubah apa pun di kode, karena ruang nama untuk DbContext dan tipe Kode Pertama tidak berubah.
Tetapi jika aplikasi Anda menggunakan versi Entity Framework yang lebih lama, maka jenis seperti ObjectContext yang sebelumnya ada di System.Data.Entity.dll telah dipindahkan ke namespace baru.
Step 8 - Anda perlu memperbarui petunjuk penggunaan atau Impor Anda untuk membangun melawan EF6.
Aturan umum untuk perubahan namespace adalah bahwa semua jenis di System.Data. * Dipindahkan ke System.Data.Entity.Core. *. Berikut adalah beberapa di antaranya -
- System.Data.EntityException ⇒ System.Data.Entity.Core.EntityException
- System.Data.Objects.ObjectContext ⇒ System.Data.Entity.Core.Objects.ObjectContext;
- System.Data.Objects.DataClasses.RelationshipManager ⇒ System.Data.Entity.Core.Objects.DataClasses.RelationshipManager;
Beberapa tipe berada di ruang nama Inti karena tidak digunakan secara langsung untuk sebagian besar aplikasi berbasis DbContext.
- System.Data.EntityState ⇒ System.Data.Entity.EntityState
- System.Data.Objects.DataClasses.EdmFunctionAttribute ⇒ System.Data.Entity.DbFunctionAttribute
Proyek Entity Framework Anda yang sudah ada akan berfungsi di Entity Framework 6.0 tanpa perubahan besar apa pun.