Heim > Backend-Entwicklung > C++ > Wie kann und debuggen Sie die Validierungsfehler im Entitätsgerüst effektiv um und debuggen effektiv?

Wie kann und debuggen Sie die Validierungsfehler im Entitätsgerüst effektiv um und debuggen effektiv?

Linda Hamilton
Freigeben: 2025-01-28 23:16:10
Original
532 Leute haben es durchsucht

How to Effectively Handle and Debug Entity Validation Errors in Entity Framework?

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

Während des Debugging -Prozesses können Sie über Visual Studio auf das Verifizierungsfehler -Array zugreifen. Manuelle Zugriffsfehler sind jedoch auch machbar:

<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>
Nach dem Login kopieren
entityValidationerrs -Attribut enthält die Entität des Verifizierungsversagens, während ValidationError die Fehlerliste der Attributebene enthält.

Fortgeschrittene Verbesserung

Zeichen des Attributwerts anzeigen:

Verwenden Sie Debug.Write:

<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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren
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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage