0

nhibernate マッピングを使用していくつかのカスケード オプションを試しており、ツールを使用してデータベースの状態を検査する単体テストを行っています。これを行うためにlinqpadを使用できることを望んでいましたが、デバッガーで接続がハングしているようです。少し前にデバッグ中にデータベースを検査するために SSMS が使用されていたデモを見たことがあります。私のラップトップでは SSMS を使用しており、より軽量なものを好むでしょう)。

linqpad とは関係ありませんが、これを行う動機は、単体テストで検証している db の状態が db からのものか、nhibernate のキャッシュからのものかがわからないことです。アサートの前に Session.Flush() が呼び出された場合、アサートのフェッチがデータベースからのものであることが保証されますか?

乾杯、ベリル

4

3 に答える 3

1

質問の2番目の部分-はい、あらゆる種類のフェッチの前にsession.flush()を呼び出すと、すべてがDBにプッシュされます。次のこともできます。

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.

それがお役に立てば幸いです。

于 2009-07-06T04:39:48.007 に答える
0

SQL プロファイラー (SSMS の [ツール] > [SQL Server プロファイル]) またはNHProfは、データベースに送信されたコマンドを監視するのに役立ちます。

于 2009-07-06T12:34:31.797 に答える