C# 如何解决实体框架中的system.data配置问题
如果将我的项目更新为mysql.data 8.0.13和mysql.data.EntityFramework。目标框架是.NET4.5.2EF,目标框架是6.2 我现在有一个奇怪的行为,我必须将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
<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>