在 Visual Studio 2013 年无法通过 EF6 连接到 MySQL
Could not connect to MySQL through EF6 in Visual Studio 2013
我正在尝试使用 visual studio 中的 EF6 连接到 MYSQL 数据库,后来我使用 SQL 并且它工作正常之后我转移到 Mysql 然后我安装这样的必需组件:
- MySQL 对于 Visual Studio 1.1.1
- MySQL Connector/Net 6.8.
错误说:
Your project references the latest version of Entity Framework; however, an Entity Framework database provider compatible with this version could not be found for you data connection. Exit this wizard, install a compatible provider, and rebuild your project before performing this action
我尝试了可能的在线解决方案,例如 重新安装 这个组件,但它没有用,
否则,我试图将这样的代码添加到我的 App.config
中:
<configuration>
<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" />
</providers>
</entityFramework>
</configuration>
但它面临着同样的命运,或者事件清除了我的 app.config
中的所有实体标签。
我还尝试安装更高版本的实体,例如:
Install-Package EntityFramework -Version 5.0.0
但它得到:Install failed. Rolling back...
Install-Package : Already referencing a newer version of 'EntityFramework'.
谁能帮我确定我该怎么做?
这对我有用,无需重新安装 Visual Studio 或其他任何东西。
- 安装了最新的MySQLvisual studio插件和MySQL连接器网络
- 删除了 App.config 或 Web.config 中的 entityFramework 标签及其所有子标签。
- 将其替换为以下代码:
<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" />
</providers>
</entityFramework>
我也是按照上面的方法解决的
例如我的步骤:
- 使用 NuGet
安装最新的 EntityFramework
安装最新的MySql.Data.Entity
在 C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5
[=27= 添加引用所有 4 个文件]
将Web.config中的entityFramework替换为如下:
<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" />
</providers>
</entityFramework>
如果您已将 MySQL 更新为 8.0 并且在 [=21= 中遇到问题]EntityFramework集成,那么我集成成功,记录下我的所有步骤。
Follow this to get your issue solved:
https://gist.github.com/pishangujeniya/41a051572a471fa0311a8f4f6d0c5332
对于遇到与我相同问题的其他人,VS2019 的管理 Nuget 包 window 有点隐藏了我需要的包,我做了几个错误的假设。我正在创建一个 .Net Framework class 库来包装我的数据库,8.20.0 的 Nuget 包的命名与 6.x.x 不同。我需要 MySql.Data 和 MySql.Data.EntityFramework。第二个有一个 .Net Core 版本,名称相似 MySql.Data.EntityFrameworkCore。可惜没有更好的错误报告。
我通过合并一些解决方案解决了这个问题:)
使用此步骤:
- 安装了最新的 MySQL visual studio 插件和 MySQL 连接器网络
- 删除了 App.config 或 Web.config 中的 entityFramework 标签及其所有子标签。
- 将其替换为以下代码:
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework" />
</providers>
</entityFramework>
我正在尝试使用 visual studio 中的 EF6 连接到 MYSQL 数据库,后来我使用 SQL 并且它工作正常之后我转移到 Mysql 然后我安装这样的必需组件:
- MySQL 对于 Visual Studio 1.1.1
- MySQL Connector/Net 6.8.
错误说:
Your project references the latest version of Entity Framework; however, an Entity Framework database provider compatible with this version could not be found for you data connection. Exit this wizard, install a compatible provider, and rebuild your project before performing this action
我尝试了可能的在线解决方案,例如 重新安装 这个组件,但它没有用,
否则,我试图将这样的代码添加到我的 App.config
中:
<configuration> <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" /> </providers> </entityFramework> </configuration>
但它面临着同样的命运,或者事件清除了我的 app.config
中的所有实体标签。
我还尝试安装更高版本的实体,例如:
Install-Package EntityFramework -Version 5.0.0
但它得到:Install failed. Rolling back...
Install-Package : Already referencing a newer version of 'EntityFramework'.
谁能帮我确定我该怎么做?
这对我有用,无需重新安装 Visual Studio 或其他任何东西。
- 安装了最新的MySQLvisual studio插件和MySQL连接器网络
- 删除了 App.config 或 Web.config 中的 entityFramework 标签及其所有子标签。
- 将其替换为以下代码:
<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" /> </providers> </entityFramework>
我也是按照上面的方法解决的
例如我的步骤:
- 使用 NuGet 安装最新的 EntityFramework
安装最新的MySql.Data.Entity
在 C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5
[=27= 添加引用所有 4 个文件]将Web.config中的entityFramework替换为如下:
<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" /> </providers> </entityFramework>
如果您已将 MySQL 更新为 8.0 并且在 [=21= 中遇到问题]EntityFramework集成,那么我集成成功,记录下我的所有步骤。
Follow this to get your issue solved: https://gist.github.com/pishangujeniya/41a051572a471fa0311a8f4f6d0c5332
对于遇到与我相同问题的其他人,VS2019 的管理 Nuget 包 window 有点隐藏了我需要的包,我做了几个错误的假设。我正在创建一个 .Net Framework class 库来包装我的数据库,8.20.0 的 Nuget 包的命名与 6.x.x 不同。我需要 MySql.Data 和 MySql.Data.EntityFramework。第二个有一个 .Net Core 版本,名称相似 MySql.Data.EntityFrameworkCore。可惜没有更好的错误报告。
我通过合并一些解决方案解决了这个问题:) 使用此步骤:
- 安装了最新的 MySQL visual studio 插件和 MySQL 连接器网络
- 删除了 App.config 或 Web.config 中的 entityFramework 标签及其所有子标签。
- 将其替换为以下代码:
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework" />
</providers>
</entityFramework>