MySQL-DbProviderFactory.CreateCommandBuilder返回null

时间:2018-10-14 04:36:24

标签: c# mysql sql .net ravendb

我在将RavenDB 3.5 SQL复制到MySQL服务器时遇到问题。我正在使用Windows 10,RavenDB 3.5和MySQL 8.0.12。 我试过回到基础,没有SSL,准系统。我安装了MySQL服务器,8.0.12连接器和.Net连接器。然后,我创建了具有所有角色和特权的测试架构,表和用户。

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

  

System.NullReferenceException:对象引用未设置为实例   一个对象。在   Raven.Database.Bundles.SqlReplication.RelationalDatabaseWriter.Dispose()   在   Raven.Database.Bundles.SqlReplication.SqlReplicationTask.ReplicateChangesToDestination(SqlReplicationConfig   cfg,ICollection`1文档,Int32&countOfReplicatedItems)

我提取了源代码并对其进行了调试。

在示例代码here中,似乎ProviderFactory与MySQL有关,而在ProviderFactory中出现此错误

  

'(((MySql.Data.MySqlClient.MySqlClientFactory)providerFactory).MySqlDbProviderServicesInstance'   引发类型为'System.DllNotFoundException'的异常

这又意味着commandbuilder为null,而commandBuilder.QuoteIdentifier(x)导致NullReferenceException 如here

我是MySQL的新手,我在3台不同的计算机上执行了相同的步骤,但每次均出现相同的错误。有点像MySQL /环境问题,就像我错过的某些设置一样。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是由MySQL bug 88660引起的:CreateDataAdapterCreateCommandBuilder未实现,并且都返回null

您将不得不等待Oracle发布固定版本,或者切换到与API兼容但没有此错误的MySqlConnector