Erhalte SQL von nHibernate

8

Ich verwende nHibernate ICriteria, um eine Abfrage auszuführen, und ich möchte in der Lage sein, die SQL zu erhalten, die ausgeführt wurde, nachdem die Anweisung ausgeführt wurde. Also zum Beispiel habe ich so etwas.

%Vor%

Ich weiß, dass ich es protokollieren kann und sql im Log sehe, aber ich möchte es sofort nach der Ausführung der Anweisung bekommen, damit ich dem Benutzer die SQL anzeigen kann (auch wenn es nicht nett aussieht).

    
Craig 12.08.2009, 03:53
quelle

3 Antworten

10

Sie können eine IInterceptor an Ihre NH ISession anhängen und dann die Methode OnPrepareStatement() verwenden, um (auch ändern ) die SQL.

    
Vijay Patel 12.08.2009, 07:47
quelle
2

Sie können die Log4Net-Konfiguration verwenden, um das verwendete SQL zu erfassen. Um zu starten, müssen Sie einen benutzerdefinierten Appender wie diesen erstellen:

%Vor%

Konfigurieren Sie dann log4net wie folgt:

%Vor%

Die obige Klasse kann dann zur Laufzeit abgefragt werden, um die sql-Ausgabe auf dem Bildschirm anzuzeigen

Edit: aus irgendeinem Grund Post kam nicht richtig heraus, so gefunden Beispiel im Web Ссылка

    
saret 12.08.2009 22:48
quelle
0

Persönlich verwende ich das "NHibernate Profiler" Werkzeug dafür. Es ist den Preis wert, da es auch eine gute Arbeit bei der Analyse Ihrer Nutzung von NHibernate und der Erkennung potentieller Probleme leistet.

    
Shane Courtrille 12.08.2009 19:55
quelle

Tags und Links