MySQL - DbProviderFactory.CreateCommandBuilder returns 空

MySQL - DbProviderFactory.CreateCommandBuilder returns null

我一直在使用 RavenDB 3.5 SQL 复制到 MySQL 服务器时遇到问题。我正在使用 Windows 10、RavenDB 3.5 和 MySQL 8.0.12。 我试过回到基础,没有 SSL,准系统。我安装了 MySQL 服务器、8.0.12 连接器和 .Net 连接器。然后我创建了一个测试模式,table 和拥有所有角色和权限的用户。

我可以通过 RavenDB SQL 复制成功测试到我的 SQL 的连接,但是当我尝试启动 SQL 复制时,我总是在下面得到 NullReferenceException:

System.NullReferenceException: Object reference not set to an instance of an object. at Raven.Database.Bundles.SqlReplication.RelationalDatabaseWriter.Dispose() at Raven.Database.Bundles.SqlReplication.SqlReplicationTask.ReplicateChangesToDestination(SqlReplicationConfig cfg, ICollection`1 docs, Int32& countOfReplicatedItems)

我把源码拉下来调试了。

使用示例代码 ,ProviderFactory 似乎有一个问题 MySQL,它在 ProviderFactory

内部有这个错误

'((MySql.Data.MySqlClient.MySqlClientFactory)providerFactory).MySqlDbProviderServicesInstance' threw an exception of type 'System.DllNotFoundException'

这反过来意味着 commandbuilder 为空并且 commandBuilder.QuoteIdentifier(x) 导致 NullReferenceException 可以看出

我是 MySQL 的新手,我在 3 台不同的机器上完成了相同的步骤,每次都出现相同的错误。感觉有点像 MySQL/Environment 问题,就像我错过了一些设置。

如有任何帮助,我们将不胜感激。

这是由 MySQL bug 88660 引起的:CreateDataAdapterCreateCommandBuilder 没有实现,return null

您必须等待 Oracle 发布固定版本,或切换到 MySqlConnector,它与 API 兼容但没有此错误。