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).
Sie können eine IInterceptor
an Ihre NH ISession
anhängen und dann die Methode OnPrepareStatement()
verwenden, um (auch ändern ) die SQL.
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 Ссылка
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.
Tags und Links c# nhibernate