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扩展方法内的连接似乎是Closed在调试器显示它时,就像Open在进入扩展方法之前一样。它不是调试器幽灵,因为 Dapper 会抛出一个抱怨连接状态的异常。程序是多线程的,但是线程之间当然没有会话/连接共享,并且总是使用调试器检查线程在扩展方法之前和内部是否相同。这怎么会发生?

4

0 回答 0