Pangkalan Data Kemas Kini EF Core Gagal Kerana Objek Sedia Ada dalam Pangkalan Data
Dalam Teras ASP.Net menggunakan Teras Rangka Kerja Entiti, cuba mengemas kini pangkalan data mungkin gagal dengan ralat yang menunjukkan bahawa objek dengan nama yang sama sudah wujud dalam pangkalan data. Ralat ini timbul jika kemas kini manual dibuat pada pangkalan data selepas menggunakan baris arahan untuk mengemas kininya.
Penyelesaian yang biasa dicadangkan ialah menggunakan perintah "Add-migration 'Reset' -IgnoreChanges", seperti yang digariskan oleh John Salewski. Walau bagaimanapun, pendekatan ini mungkin gagal kerana ketiadaan parameter -IgnoreChanges dalam Teras EF.
Penyelesaian:
Untuk menyelesaikan isu ini, ikut langkah berikut:
Ulasan Keluar() Kaedah:
Gunakan Penghijrahan:
Jalankan arahan berikut:
Add-Migration Initialization Update-Database
Prosedur ini mencipta syot kilat keadaan pangkalan data semasa. Penghijrahan masa hadapan hanya akan merangkumi perubahan yang dibuat selepas garis dasar ini.
Tambah Perubahan Kembali:
Dengan mengulas kaedah Up(), EF Core mengekalkan skema pangkalan data semasa dan mengelakkan konflik dengan objek sedia ada. Setelah migrasi garis dasar digunakan, migrasi seterusnya boleh memperkenalkan perubahan baharu dengan selamat, memastikan proses kemas kini yang lancar.
Atas ialah kandungan terperinci Mengapa `Kemas Kini Pangkalan Data` EF Core Gagal Kerana Objek Pangkalan Data Sedia Ada, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!