将 NHibernate 3.3 迁移到 5,找不到方法:System.Data.IDbCommand NHibernate.AdoNet.AbstractBatcher.get_CurrentCommand() 与 SqlAzure

Migrating NHibernate 3.3 to 5, getting Method not found: System.Data.IDbCommand NHibernate.AdoNet.AbstractBatcher.get_CurrentCommand() with SqlAzure

我正忙于将项目从 NHibernate 3.3.3.4 迁移到 5.1.3。我在提交事务或刷新会话时遇到错误。

我目前收到的错误如下:

Method not found: 'System.Data.IDbCommand NHibernate.AdoNet.AbstractBatcher.get_CurrentCommand()'.

我查看了 NHibernate 5.1.3 代码和发行说明,发现 CurrentCommand 属性 getter [=16] 发生了变化=] class。在 NHibernate 的这个主要版本中,此 属性 已从类型 IDbCommand 更改为类型 DbCommand。请参阅以下差异:

版本 3.3.x Permalink

protected IDbCommand CurrentCommand
{
    get { return _batchCommand; }
}

版本 5.1.3 Permalink

protected DbCommand CurrentCommand
{
    get { return _batchCommand; }
}

我正在使用 SqlAzureClientDriver (NHibernate.SqlAzure) 进行可靠的 SQL Azure 连接。我注意到 NHibernate.SqlAzure 的最新版本仍在使用 IDbCommand 实现。

有没有其他人使用 SqlAzureClientDriver 遇到过这个问题并且能够解决它?

使用NHibernate5版本的SqlAzureClientDriver,可以作为nuget包安装NHibernate5.SqlAzure。