我不太确定我是否遇到了错误,或者我不明白它应该如何工作。所以最近我一直在尝试解决这个异常MySql.Data.MySqlClient.MySqlException: 'There is already an open DataReader associated with this Connection which must be closed first.'
,我开始了一个调试会话来看看发生了什么。我所看到的并没有完全在我的脑海中计算(见所附截图)。
在我调用 之后reader.Close()
,该属性IsClosed
保持为假,并且重复调用.Close()
(在即时窗口中)不会改变它。
这是预期的行为,我的问题在其他地方,还是这是一个错误和异常的原因?
使用MySql.Data
v6.10.3-rc(来自 nuget.org)时会发生这种情况,这是目前唯一支持 .NET Standard 的版本。此外,代码被编译为 .NET Core 2.0 应用程序。
UPD:周围有任务,但只能从主线程使用阅读器。此外,reader
被声明为DbDataReader
,从中MySqlDataReader
继承。
UPD2:显然,如果我打电话((MySql.Data.MySqlClient.MySqlDataReader)reader).Close()
,那么阅读器会正确关闭。在我看来,连接器中的错误以及它们如何使用虚拟方法。正确的?