Rumah > pangkalan data > tutorial mysql > Mengapa Perintah Kemas Kini-Pangkalan Data Saya Gagal dalam Teras Rangka Kerja Teras/Entiti ASP.NET Kerana Objek Pangkalan Data Sedia Ada?

Mengapa Perintah Kemas Kini-Pangkalan Data Saya Gagal dalam Teras Rangka Kerja Teras/Entiti ASP.NET Kerana Objek Pangkalan Data Sedia Ada?

Susan Sarandon
Lepaskan: 2024-12-20 00:20:12
asal
469 orang telah melayarinya

Why Does My Update-Database Command Fail in ASP.NET Core/Entity Framework Core Due to Existing Database Objects?

Arahan Kemas Kini-Pangkalan Data Gagal dalam Teras Rangka Kerja Teras/Entiti ASP.Net Disebabkan Objek Pangkalan Data Sedia Ada

Senario:
Apabila cuba mengemas kini pangkalan data menggunakan perintah Kemas Kini-Pangkalan Data, ralat berlaku menunjukkan bahawa objek sudah wujud dalam pangkalan data. Isu ini biasanya berlaku selepas mengubah suai jadual secara manual dalam pangkalan data.

Punca Punca:
Arahan Kemas Kini-Pangkalan Data bergantung pada migrasi untuk mengemas kini skema pangkalan data. Apabila perubahan manual dibuat pada pangkalan data di luar proses migrasi, arahan menjadi tidak konsisten dan gagal.

Mesej Ralat:

System.Data.SqlClient.SqlException: There is already an object named 'ClientsAndTestimonials' in the database. ...
Salin selepas log masuk

Penyelesaian:
Untuk menyelesaikan isu ini dan membenarkan perintah Kemas Kini-Pangkalan Data berjaya, ikuti ini langkah:

  1. Alih Keluar Perubahan Manual: Gulung semula atau alih keluar perubahan manual yang dibuat pada jadual pangkalan data.
  2. Buat Migrasi Baharu : Dalam Visual Studio atau tetingkap arahan, jalankan arahan Add-Migration "Reset" untuk mencipta migrasi yang akan menggugurkan dan mencipta semula jadual yang terjejas dan kebergantungannya.
  3. Gunakan Migrasi: Jalankan arahan Kemas Kini-Pangkalan Data untuk menggunakan migrasi baharu dan cipta semula pangkalan data selaras dengan model semasa.

Pendekatan Alternatif untuk Perubahan Bertambah:
Jika anda membuat perubahan tambahan pada model pangkalan data tetapi tidak mahu mengalih keluarnya, anda boleh mengambil langkah berikut:

  1. Lumpuhkan Migrasi: Ulas kandungan kaedah Up() dalam kelas migrasi menggunakan // .
  2. Gunakan Migrasi Baseline: Jalankan Update-Database untuk mencipta petikan pangkalan data semasa negeri.
  3. Pulihkan Perubahan Bertambah: Laksanakan semula perubahan model tambahan dalam migrasi baharu dengan nama lain dan gunakannya.

Atas ialah kandungan terperinci Mengapa Perintah Kemas Kini-Pangkalan Data Saya Gagal dalam Teras Rangka Kerja Teras/Entiti ASP.NET Kerana Objek Pangkalan Data Sedia Ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan