2009-07-06 11 views
0

Ich probiere einige Kaskadenoptionen mit Nhibernate-Mapping aus und habe einen Unit-Test, bei dem ich ein Tool verwenden möchte, um den Zustand der Datenbank zu überprüfen. Ich hatte gehofft, ich könnte linqpad verwenden, um dies zu tun, aber die Verbindung scheint im Debugger gehangen. Ich hatte vor nicht allzu langer Zeit eine Demonstration gesehen, wo SSMS verwendet wurde, um die DB während eines Debugs zu inspizieren, also frage ich mich, ob ich irgendwie linqpad benutzen könnte oder ob ich ein anderes Werkzeug brauche (ich habe es nicht installiert) SSMS auf meinem Laptop und würde etwas leichteres bevorzugen).Datenbankinspektion während des Debuggens

Ohne Bezug zu linqpad, ist meine Motivation dafür, ich bin nicht sicher, ob der DB-Zustand, den ich in einem Komponententest validiere, aus dem db oder aus dem Cache von nhibernate stammt? Wenn Session.Flush() vor der Assert aufgerufen wird, bedeutet dies, dass ein Abruf in einer Assert-Datei garantiert aus der db kommt?

Cheers, Berryl

Antwort

1

Zum zweiten Teil Ihrer Frage - Ja, ruft session.flush() vor jeder Art von holen alles heraus an die DB schieben. Sie könnten auch tun:

Transaction t = session.beginTransaction(); 
//some hibernate interaction test code 
t.commit() 
//you can rest assured that any code coming from the hibernate now will 
//be exactly what is in the db. 

hoffe, dass hilft.

0

SQL Profiler (Tools> SQL Server-Profil von SSMS) oder NHProf hilft Ihnen bei der Überwachung von Befehlen, die an die Datenbank gesendet werden.

+0

Hallo Jamie kann ich SQL-Anweisungen finden Sie nur an die DB gesendet nun NHib Konfigurieren sie senden zur Konsole. Es ist nützlich, aber ich suche nach einem leichtgewichtigen Werkzeug, das die Datenbankdaten während des Debuggens untersuchen kann. Prost, – Berryl

0

Sie können die DatabaseManagerSwing-Klasse verwenden, die in HSQLDB enthalten ist. Es wird eine Swing-Anwendung geöffnet, mit der Sie die Objekte in einer Datenbank durchsuchen und Abfragen ausführen können. eine offene Verbindung zu Leiten können Sie den Status der Datenbank in der Transaktion sehen, die Verbindung in ist.

DatabaseManagerSwing manager = new DatabaseManagerSwing(); 
manager.main(); 
manager.connect(connection); 
manager.start(); 
Verwandte Themen