Pengecualian Gagal Pengesahan apabila Menyimpan ke Pelayan SQL Menggunakan Rangka Kerja Entiti
Rangka Kerja Entiti ialah rangka kerja ORM (Pemetaan Perhubungan Objek) yang berkuasa yang membolehkan pembangun untuk bekerja dengan pangkalan data hubungan menggunakan bahasa pengaturcaraan berorientasikan objek seperti C#. Walau bagaimanapun, satu isu biasa yang boleh timbul semasa bekerja dengan Rangka Kerja Entiti ialah pengecualian "Pengesahan gagal untuk satu atau lebih entiti" apabila menyimpan perubahan pada pangkalan data.
Sebab Pengecualian
Mesej ralat biasanya menunjukkan bahawa data yang disimpan ke pangkalan data melanggar kekangan pangkalan data. Dalam kes khusus ini, isu ini mungkin berpunca daripada jenis data berbeza yang digunakan untuk nilai tarikh dan masa dalam pangkalan data dan dalam kelas Entiti.
Penyelesaian: Menghantar kepada Jenis Data yang Sesuai
Untuk menyelesaikan isu ini, jenis data dalam kelas Entiti perlu dihantar untuk memadankan jenis data pangkalan data sebelum menyimpan perubahan. Dalam kes ini, jenis data DateTime dan TimeSpan dalam kelas Acara hendaklah dihantar ke jenis data Tarikh dan Masa sebelum disimpan ke pangkalan data.
Begini cara melakukannya dalam kod:
// Convert EventDate to Date datatype Event event = this.storeDB.Events.Find(id); event.EventDate = event.EventDate.Date; // Convert StartTime and EndTime to Time datatype event.StartTime = new TimeSpan(event.StartTime.Hours, event.StartTime.Minutes, 0); event.EndTime = new TimeSpan(event.EndTime.Hours, event.EndTime.Minutes, 0); // Save changes to the database this.storeDB.SaveChanges(); RedirectToAction("Index");
Dengan menghantar jenis data ke format yang betul, data yang disimpan ke pangkalan data kini akan mematuhi kekangan pangkalan data, menyelesaikan "Pengesahan failed".
Nota Tambahan:
Jika anda terus menghadapi isu penjimatan data, anda boleh mengekstrak maklumat lanjut tentang ralat pengesahan dengan menggunakan sifat EntityValidationErrors DbEntityValidationException, seperti yang ditunjukkan dalam jawapan yang disediakan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Pengecualian 'Pengesahan Gagal' Apabila Menyimpan Data ke Pelayan SQL Menggunakan Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!