我正在逐渐将应用程序从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
而调试器将其显示为{在输入扩展方法之前{1}}。它不是调试器重影,因为Dapper抛出一个抱怨连接状态的异常。
程序是多线程的,但当然在线程之间没有会话/连接共享,并且总是在调试器中检查线程在扩展方法之前和之内是相同的。
怎么会发生这种情况?