Isu Pengesahan Semasa Operasi Simpan Rangka Kerja Entiti: Penyelaman Dalam
Ralat "Pengesahan gagal untuk satu atau lebih entiti..." lazimnya timbul apabila menyimpan perubahan pada pangkalan data menggunakan Rangka Kerja Entiti. Ini boleh dikaitkan dengan jenis data yang tidak sepadan atau penukaran yang tidak betul antara objek .NET dan medan pangkalan data.
Dalam senario khusus ini, kelas Acara mentakrifkan jenis data DateTime dan TimeSpan, manakala lajur pangkalan data yang sepadan adalah jenis Date, Masa, dan Masa masing-masing. Jenis ketidakpadanan ini boleh menyebabkan kegagalan pengesahan.
Penghantaran ke Jenis Data yang Sesuai
Untuk menyelesaikan isu ini, menghantar kepada jenis data yang sesuai sebelum menyimpan perubahan adalah perlu. Begini cara anda boleh mengubah suai kod anda:
public class Event { // Convert to SQL Server-compatible types before saving public DateTime EventDate { get => EventDate.Date; set => _eventDate = value; } public TimeSpan StartTime { get => TimeSpan.Parse(StartTime.ToString("hh\:mm")); set => _startTime = value; } public TimeSpan EndTime { get => TimeSpan.Parse(EndTime.ToString("hh\:mm")); set => _endTime = value; } }
Ralat Pengesahan Penyahpepijatan
Untuk menyelesaikan masalah selanjutnya, anda boleh menangkap semua maklumat pengesahan menggunakan kod berikut:
try { storeDB.SaveChanges(); } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Console.WriteLine("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } }
Kod ini akan memaparkan semua ralat pengesahan peringkat harta, membolehkan anda menentukan punca sebenar isu.
Kesimpulan
Dengan menghantar kepada jenis data yang betul dan menggabungkan penyahpepijatan ralat pengesahan, anda boleh menyelesaikan isu "Pengesahan gagal" dan menyimpan perubahan pada pangkalan data anda dengan lancar menggunakan Rangka Kerja Entiti. Ingat untuk sentiasa mempertimbangkan keserasian jenis data untuk mengelakkan ralat pengesahan pada masa hadapan.
Atas ialah kandungan terperinci Mengapa Rangka Kerja Entiti Membuang Ralat 'Pengesahan Gagal' dan Bagaimana Saya Boleh Nyahpepijat dan Menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!