アプリを 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 は接続状態を訴える例外をスローするため、デバッガー ゴーストではありません。プログラムはマルチスレッドですが、もちろんスレッド間でのセッション・コネクションの共有はなく、拡張メソッドの前後でスレッドが同一であることをデバッガで常にチェックしていました。どうしてこうなった?Closed
Open