Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 37510|Jawab: 1

[Sumber] Strategi inisialisasi database di EF 6 Code-First

[Salin tautan]
Diposting pada 17/04/2019 15.56.46 | | |
Anda telah membuat database setelah menjalankan aplikasi Code-First untuk pertama kalinya, tetapi apa itu setelah memulai kedua kalinya? Apakah database baru dibuat setiap kali aplikasi dijalankan? Bagaimana dengan lingkungan produksi? Bagaimana cara mengubah database saat saya mengubah model domain? Untuk menangani skenario ini, Anda harus menggunakan salah satu kebijakan inisialisasi database.

Ada empat strategi inisialisasi database yang berbeda:

  • CreateDatabaseIfNotExists:Ini adalahDefaultprosedur inisialisasi. Seperti namanya, itu akan membuat database jika tidak ada sesuai dengan konfigurasi. Namun, jika Anda mengubah kelas model dan kemudian menjalankan aplikasi dengan inisialisasi ini, pengecualian akan dilemparkan.
  • DropCreateDatabaseIfModelChanges: Jika kelas model Anda (kelas entitas) telah berubah, penginisialisasi ini akan menghapus database yang ada dan membuat yang baru. Jadi, Anda tidak perlu khawatir tentang memelihara skema database saat kelas model berubah.
  • DropCreateDatabaseAlways: Seperti namanya, penginisialisasi ini menghapus database yang ada setiap kali Anda menjalankan aplikasi, terlepas dari apakah kelas model Anda telah berubah atau tidak. Ini berguna ketika Anda membutuhkan database baru setiap kali Anda menjalankan aplikasi, misalnya saat mengembangkan aplikasi.
  • Penginisialisasi database kustom: Anda juga dapat membuat inisialisasi kustom Anda sendiri jika hal di atas tidak memenuhi persyaratan Anda, atau jika Anda ingin menggunakan inisialisasi di atas untuk melakukan proses inisialisasi database lain.

Untuk menggunakan salah satu strategi inisialisasi DB di atas, Anda harus mengatur Penginisialisasi DB menggunakan kelas di kelas konteks Database, seperti yang ditunjukkan di bawah ini:




Anda juga dapat membuat penginisialisasi database kustom dengan mewarisi salah satu inisialisasi, seperti yang ditunjukkan di bawah ini:




Dalam contoh di atas, SchoolDBInitializer adalah kelas penginisialisasi kustom yang berasal dari CreateDatabaseIfNotExists. Ini memisahkan kode inisialisasi database dari kelas konteks.

Siapkan DB Initializer di file konfigurasi

Anda juga dapat mengatur penginisialisasi db di file konfigurasi. Misalnya, untuk mengatur setelan nilai awal default di app.config:




Anda dapat menyiapkan inisialisasi database kustom sebagai berikut:




Tutup Inisialisasi DB

Anda dapat mematikan penginisialisasi database untuk aplikasi Anda.Dengan asumsi Anda tidak ingin kehilangan data yang ada dalam produksi, Anda dapat menutup inisialisasi, sebagai berikut:



Anda juga dapat mematikan penginisialisasi di file konfigurasi, misalnya:








Mantan:Kriptografi Bergambar Edisi ke-3
Depan:Video kelas pekerjaan Silicon Valley April 2018
 Tuan tanah| Diposting pada 07/02/2021 15.08.59 |
Izinkan Kerangka Kerja Entitas untuk memulai tidak lagi valid __MigrationHistory tabel
https://www.itsvse.com/thread-3255-1-1.html

Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com