Pomelo.entityframeworkcore.mysql: SQL-Profiler

Erstellt am 22. Sept. 2016  ·  4Kommentare  ·  Quelle: PomeloFoundation/Pomelo.EntityFrameworkCore.MySql

Kann jemand eine Möglichkeit empfehlen, wie ich die tatsächliche vollständige SQL-Anweisung sehen kann, die mit dieser Bibliothek an MySQL gesendet wird? Der Debug-Logger gibt die Abfrage mit den Parametern aus, zeigt aber die tatsächlichen Parameterwerte als ? Wie unten. Ich versuche, einige Probleme mit Datumsparametern zu debuggen und muss den genauen Parameterwert sehen, den mysql empfängt. Vielen Dank!

Ausgeführter DbCommand (3.887ms) [Parameters=[@__utcDate_0='?', @__AddDays_1='?', @__viewModel_LastName_2='?' (Größe = 8000), @__viewModel_BirthDate_Date_3='?', @__AddDays_4='?'], CommandType='Text', CommandTimeout='30']

Alle 4 Kommentare

Ich weiß, dass dies ein Hack ist, aber Sie können Wireshark verwenden, um zu sehen, was genau an die Datenbank gesendet wird.

Der Grund, warum Sie die parametrisierte Protokollierung im ? Das Format liegt daran, dass der Datenbanktreiber vorbereitete Anweisungen verwendet. Vorbereitete Anweisungen umgehen Parameter auf dem DBMS und verhindern die SQL-Injektion. Die Anweisung wird tatsächlich mit dem ? markiert, und die Parameter werden separat gesendet.

1.1.0-rtm-10002 enthält jetzt die Anweisungsprotokollierung, wenn Debug oder Info Protokolle in .NET MVC verwendet werden

Ich kann die Anweisungsprotokollierung nicht finden.

startup.cs Methode konfigurieren:
loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug();

appsetting.json
"Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Debug" } }

Ausführung:
1.1.1-Vorabversion-10020

@calebloyd

Bitte beachten Sie, dass Sie EnableSensitiveDataLogging() verwenden müssen, um beim Konfigurieren des Kontexts die tatsächlichen Parameterwerte anzuzeigen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen