Rumah > pangkalan data > tutorial mysql > Mengapa `Kemas Kini Pangkalan Data` EF Core Gagal Kerana Objek Pangkalan Data Sedia Ada, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa `Kemas Kini Pangkalan Data` EF Core Gagal Kerana Objek Pangkalan Data Sedia Ada, dan Bagaimana Saya Boleh Membetulkannya?

DDD
Lepaskan: 2024-12-21 14:53:11
asal
939 orang telah melayarinya

Why Does EF Core's `Update-Database` Fail Due to Existing Database Objects, and How Can I Fix It?

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:

  1. Ulasan Keluar() Kaedah:

    • Cari fail pemindahan yang dikaitkan dengan perubahan pangkalan data manual.
    • Ulas semua kod dalam kaedah Up() bagi fail pemindahan ini.
  2. Gunakan Penghijrahan:

    • Jalankan arahan berikut:

      Add-Migration Initialization
      Update-Database
      Salin selepas log masuk

Prosedur ini mencipta syot kilat keadaan pangkalan data semasa. Penghijrahan masa hadapan hanya akan merangkumi perubahan yang dibuat selepas garis dasar ini.

  1. Tambah Perubahan Kembali:

    • Jika perlu, kembalikan sebarang perubahan pangkalan data manual dan buat fail migrasi baharu untuk memasukkan perubahan model tambahan.
    • Tambahkan migrasi kedua pada pangkalan data.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan