2

アプリを NH から Dapper に徐々に移行しています。私は多くの点で次の戦略を使用しています。

using( var uow=MyUowManager.BeginUoW() ) //obtain a session and open
{
     //do some NH sandard stuff
     ....
     //then use Dapper
     session.Connection.Query<Dto>(....).ToList(); // Dapper query
}//close session ( and connection )

これは私のコードでは非常に一般的であり、通常は常に機能しますが、拡張メソッドに入る前のようにデバッガーQueryが表示しているときに拡張メソッド内の接続が「時々」機能する場合を除きます。Dapper は接続状態を訴える例外をスローするため、デバッガー ゴーストではありません。プログラムはマルチスレッドですが、もちろんスレッド間でのセッション・コネクションの共有はなく、拡張メソッドの前後でスレッドが同一であることをデバッガで常にチェックしていました。どうしてこうなった?ClosedOpen

4

0 に答える 0