Validierung fehlgeschlagene Ausnahme beim Speichern auf SQL Server mit Entity Framework
Entity Framework ist ein leistungsstarkes ORM-Framework (Object-Relational Mapping), das dies ermöglicht Entwicklern ermöglicht es Entwicklern, mit relationalen Datenbanken unter Verwendung objektorientierter Programmiersprachen wie C# zu arbeiten. Ein häufiges Problem, das bei der Arbeit mit Entity Framework auftreten kann, ist jedoch die Ausnahme „Validierung für eine oder mehrere Entitäten fehlgeschlagen“ beim Speichern von Änderungen in der Datenbank.
Grund für die Ausnahme
Die Fehlermeldung weist normalerweise darauf hin, dass die in der Datenbank gespeicherten Daten gegen Datenbankbeschränkungen verstoßen. In diesem speziellen Fall kann das Problem auf die unterschiedlichen Datentypen zurückzuführen sein, die für Datums- und Zeitwerte in der Datenbank und in der Entity-Klasse verwendet werden.
Lösung: Umwandlung in die entsprechenden Datentypen
Um dieses Problem zu beheben, müssen die Datentypen in der Entity-Klasse vor dem Speichern von Änderungen so umgewandelt werden, dass sie mit den Datenbankdatentypen übereinstimmen. In diesem Fall sollten die Datentypen „DateTime“ und „TimeSpan“ in der Event-Klasse in die Datentypen „Date“ und „Time“ umgewandelt werden, bevor sie in der Datenbank gespeichert werden.
So geht's im 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");
Durch die Umwandlung der Datentypen in die richtigen Formate entsprechen die in der Datenbank gespeicherten Daten nun den Datenbankbeschränkungen, wodurch das Problem „Validierung fehlgeschlagen“ behoben wird. Ausnahme.
Zusätzlicher Hinweis:
Wenn weiterhin Probleme beim Speichern von Daten auftreten, können Sie weitere Informationen zu den Validierungsfehlern extrahieren, indem Sie die EntityValidationErrors-Eigenschaft der DbEntityValidationException verwenden, wie gezeigt in der bereitgestellten Antwort.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Ausnahme „Validierung fehlgeschlagen', wenn ich Daten mit Entity Framework in SQL Server speichere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!