C# 无法使用visual studio 2019连接MySQL数据库
我正在尝试通过C# 无法使用visual studio 2019连接MySQL数据库,c#,mysql,entity-framework,visual-studio-2019,C#,Mysql,Entity Framework,Visual Studio 2019,我正在尝试通过dotnet应用程序将MySQL数据库配置到中。为此,我安装了它 实体框架6(EF6) 通过nuget发布8.0.22版 App.config <entityFramework> <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" /> <providers> <prov
dotnet
应用程序将MySQL
数据库配置到中。为此,我安装了它
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<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, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
</provider></providers>
当我试图添加数据库时,我发现以下错误
我尝试了堆栈上的几乎所有解决方案,但都没有解决问题
非常感谢您的帮助。这是一个明显的问题,错误只是说: 实体框架数据库提供程序与此不兼容 实体框架的版本
作为<强>引用< /强>,请考虑<强> > <>强>中的步骤,因为它描述了用于连接到MySQL数据库的两种.NET项目(.Net和.NETCore)。在您的情况下,只在Windows上遵循EF6的最低要求,并注意.NET Framework版本和兼容性
通过将配置文件与项目中的程序集引用进行比较,小心参考的内容和安装的内容。我不知道您对项目依赖关系的控制有多好如果您比较,您会发现这与您的完全不同。可能还有一些不必要的错误,我们在离你们很远的地方无法控制,我们也无法重现这个问题最后,检查程序集引用和配置文件中的内容。进行深入更改后,您可能必须重新启动Visual Studio才能跟踪这些更改是否得到确认。这是一个明显的问题,错误只是说: 实体框架数据库提供程序与此不兼容 实体框架的版本
作为<强>引用< /强>,请考虑<强> > <>强>中的步骤,因为它描述了用于连接到MySQL数据库的两种.NET项目(.Net和.NETCore)。在您的情况下,只在Windows上遵循EF6的最低要求,并注意.NET Framework版本和兼容性
通过将配置文件与项目中的程序集引用进行比较,小心参考的内容和安装的内容。我不知道您对项目依赖关系的控制有多好如果您比较,您会发现这与您的完全不同。可能还有一些不必要的错误,我们在离你们很远的地方无法控制,我们也无法重现这个问题最后,检查程序集引用和配置文件中的内容。进行深入更改后,您可能必须重新启动Visual Studio,以便跟踪这些更改是否得到确认。因为错误表明您使用的是不兼容的提供程序。根本原因可能是您有重复的
MySql.Data.MySqlClient
提供程序,一个从MySql.Data.Entity.EF6
程序集加载,另一个从MySql.Data.EntityFramework
程序集加载
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
...
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
另外,请注册dbProviderFactorys
<configuration>
<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=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<configuration>
注意:始终更新版本号以匹配您正在使用的MySql.Data.dll程序集中的版本号。因为错误表明您正在使用不兼容的提供程序。根本原因可能是您有重复的
MySql.Data.MySqlClient
提供程序,一个从MySql.Data.Entity.EF6
程序集加载,另一个从MySql.Data.EntityFramework
程序集加载
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
...
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
另外,请注册dbProviderFactorys
<configuration>
<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=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<configuration>
注意:始终更新版本号以匹配您正在使用的MySql.Data.dll程序集中的版本号。如错误消息所述,您有一个不兼容的MySql连接器,请尝试全部删除并重新创建。 您可以直接从源代码处尝试@ 尝试将配置更改为
<connectionStrings>
<add name="MyContext" providerName="MySql.Data.MySqlClient"
connectionString="server=yourserver;port=3306;database=mycontext;uid=root;password=******** "/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework"/>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
有很多有用的信息。正如错误消息所描述的,您有一个不兼容的mysql连接器,请尝试删除所有并重新创建。
您可以直接从源代码处尝试@
尝试将配置更改为
<connectionStrings>
<add name="MyContext" providerName="MySql.Data.MySqlClient"
connectionString="server=yourserver;port=3306;database=mycontext;uid=root;password=******** "/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework"/>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
有很多有用的信息