C# 如何解决实体框架中的system.data配置问题

C# 如何解决实体框架中的system.data配置问题,c#,mysql,.net,entity-framework,C#,Mysql,.net,Entity Framework,如果将我的项目更新为mysql.data 8.0.13和mysql.data.EntityFramework。目标框架是.NET4.5.2EF,目标框架是6.2 我现在有一个奇怪的行为,我必须将system.data部分添加到我的配置中 <system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" d

如果将我的项目更新为mysql.data 8.0.13和mysql.data.EntityFramework。目标框架是.NET4.5.2EF,目标框架是6.2 我现在有一个奇怪的行为,我必须将system.data部分添加到我的配置中

  <system.data>
    <DbProviderFactories>
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
    </DbProviderFactories>
  </system.data>
因此,如果我删掉这部分配置,它就会工作。但在另一台机器上,它表示

System.ArgumentException: The ADO.NET provider with the invariant name 'MySql.Data.MySqlClient' was either not registered on the computer or in the application configuration file, or could not be loaded.  
是否有任何可能的解决方案或检查方法?因为我在同一台电脑上的不同用户也有奇怪的行为(使用clickonce推出)

EF的配置部分

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework"></provider>
    </providers>
  </entityFramework> 


这应该适用于任何pc。我也不知道如何添加更多信息,因为我真的不知道问题出在哪里。整个周末都在尝试解决此问题。

我不太确定,但您可以尝试以下方法:

从System.data元素:

添加以下内容:

<remove invariant="MySql.Data.MySqlClient" />

看起来像:

<system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>

您可以像您的一样包含或删除该版本


但是如果您包含了这个版本,请确保它是您正在使用的MYSQL版本

在具有两种状态的4台不同机器上测试了拆卸。所有这些都做了,非常感谢!
<system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>