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
434 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!

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