detaillierte Interpretation von Entitätsprüfungsfehlern
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>
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>
Savechanges neu aufwillen:
<code class="language-csharp">public class FormattedDbEntityValidationException : Exception { public override string Message => InnerException != null ? InnerException?.ToDetailedString() : ""; }</code>
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!