Heim >Backend-Entwicklung >C++ >Wie kann und debuggen Sie die Validierungsfehler im Entitätsgerüst effektiv um und debuggen effektiv?
Im Falle einer Fehlermeldung "Ein oder mehrere Entitäten sind fehlgeschlagen. Ansicht" Entity validationError "-attribute, um weitere Details zu erfahren, können Sie auf die Verifizierungsfehlergruppe zugreifen.
Überprüfen Sie den Überprüfungsfehler
<code class="language-csharp">try { // 代码 context.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("实体: \"{0}\", 状态: \"{1}\"", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach(var ve in eve.ValidationErrors) { Console.WriteLine("- 属性: \"{0}\", 错误: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; }</code>entityValidationerrs -Attribut enthält die Entität des Verifizierungsversagens, während ValidationError die Fehlerliste der Attributebene enthält.
Fortgeschrittene Verbesserung
<code class="language-csharp">foreach(var ve in eve.ValidationErrors) { Console.WriteLine("- 属性: \"{0}\", 值: \"{1}\", 错误: \"{2}\"", ve.PropertyName, eve.Entry.CurrentValues.GetValue<object>(ve.PropertyName), ve.ErrorMessage); }</code>
benutzerdefinierte Anomalien mit detaillierten Nachrichten:
<code class="language-csharp">Debug.Write("- 属性: \"{0}\", 值: \"{1}\", 错误: \"{2}\"", ve.PropertyName, eve.Entry.CurrentValues.GetValue<object>(ve.PropertyName), ve.ErrorMessage);</code>Diese Ausnahme wird durch Formatierung von Nachrichten verifiziert:
Savechanges neu aufwillen:
<code class="language-csharp">public class FormattedDbEntityValidationException : Exception { public override string Message => InnerException != null ? InnerException?.ToDetailedString() : ""; }</code>Dies stellt sicher, dass die Überprüfungsdetails in einem Fehlerprotokoll (EM, Elmah) angezeigt werden.
Das obige ist der detaillierte Inhalt vonWie kann und debuggen Sie die Validierungsfehler im Entitätsgerüst effektiv um und debuggen effektiv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!