Exception d'échec de validation lors de l'enregistrement sur SQL Server à l'aide d'Entity Framework
Entity Framework est un puissant framework ORM (Object-Relational Mapping) qui permet aux développeurs de travailler avec des bases de données relationnelles à l'aide de langages de programmation orientés objet comme C#. Cependant, un problème courant qui peut survenir lors de l'utilisation de Entity Framework est l'exception « Échec de la validation pour une ou plusieurs entités » lors de l'enregistrement des modifications dans la base de données.
Raison de l'exception
Le message d'erreur indique généralement que les données enregistrées dans la base de données violent les contraintes de la base de données. Dans ce cas spécifique, le problème peut provenir des différents types de données utilisés pour les valeurs de date et d'heure dans la base de données et dans la classe Entity.
Solution : conversion vers les types de données appropriés
Pour résoudre ce problème, les types de données de la classe Entity doivent être convertis pour correspondre aux types de données de la base de données avant d'enregistrer les modifications. Dans ce cas, les types de données DateTime et TimeSpan de la classe Event doivent être convertis en types de données Date et Time avant d'être enregistrés dans la base de données.
Voici comment procéder dans le code :
// 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");
En convertissant les types de données dans les formats corrects, les données enregistrées dans la base de données seront désormais conformes aux contraintes de la base de données, résolvant ainsi le problème « Échec de la validation ». exception.
Remarque supplémentaire :
Si vous continuez à rencontrer des problèmes d'enregistrement de données, vous pouvez extraire plus d'informations sur les erreurs de validation en utilisant la propriété EntityValidationErrors de DbEntityValidationException, comme indiqué dans la réponse fournie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!