2016-04-28 7 views
0

Manchmal habe ich eine EntityFramework-Ausnahme beim Aufrufen von SaveChanges. Ich sehe diese Art von Nachricht: "Beim Aktualisieren der Einträge ist ein Fehler aufgetreten. Weitere Informationen finden Sie in der inneren Ausnahme." Ich habe die Stack-Trace, die innere Ausnahme und Sachen protokolliert, aber es gibt keine klare Erklärung des Problems. Ich möchte die echte Abfrage sehen (es ist eine MySQL-Datenbank), mit den Parametern. Weißt du, wie ich die echte Abfrage sehen oder protokollieren kann?EntityFramework-Ausnahme: Wie kann ich die echte Abfrage sehen

Dank

Antwort

0

Sie DbEntityValidationException Handler verwenden können, die Sie wissen lassen, was falsch genau war.

try{ 

    //Your code here 
} 

catch (DbEntityValidationException ex) 
{ 
    var errorMessages = ex.EntityValidationErrors 
    .SelectMany(x => x.ValidationErrors) 
    .Select(x => x.ErrorMessage); 
    var fullMessageError = string.Join("; ", errorMessages); 
    var exceptionMessage = string.Concat(ex.Message, "Exact Message " + fullMessageError); 


} 
catch (Exception ex) 
{ 
//General Exception here 
} 
+0

Dank aber DbEntityValidationException nicht gebrannt – testpresta

0

Sie können die Protokolleigenschaft von dbContext.Database festlegen und die von EF generierten tatsächlichen Abfragen protokollieren.

using (var context = new MyDBContext()) 
{ 
    context.Database.Log = Console.Write; // This is where you setup where to log queries 

    // Your code here... 
} 

Es gibt eine ausführliche Dokumentation auf MSDN https://msdn.microsoft.com/en-us/data/dn469464.aspx

Verwandte Themen