簡體   English   中英

無法通過 Visual Studio 2013 中的 EF6 連接到 MySQL

[英]Could not connect to MySQL through EF6 in Visual Studio 2013

我正在嘗試在 Visual Studio 中使用 EF6 連接到 MYSQL 數據庫,后來我使用 SQL 並且在我轉移到 Mysql 之后它工作正常,然后我安裝了這些必需的組件:

  • 用於 Visual Studio 1.1.1 的 MySQL
  • MySQL 連接器/網絡 6.8。

錯誤說: 在此處輸入圖片說明

您的項目引用了最新版本的實體框架; 但是,無法為您的數據連接找到與此版本兼容的實體框架數據庫提供程序。 在執行此操作之前退出此向導,安裝兼容的提供程序並重建您的項目

我嘗試了可能的在線解決方案,例如重新安裝此組件但它不起作用,否則我嘗試將此代碼添加到我的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事件清除所有實體標簽。 我也嘗試安裝更高版本的實體,例如:

安裝包 EntityFramework -Version 5.0.0

但它得到: Install failed. Rolling back... Install-Package : Already referencing a newer version of 'EntityFramework'. Install failed. Rolling back... Install-Package : Already referencing a newer version of 'EntityFramework'.

誰能幫我確定我應該怎么做?

這對我有用,而無需重新安裝 Visual Studio 或任何東西。

  • 安裝了最新的 MySQL Visual 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 中的所有 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並在Visual Studio EntityFramework集成中遇到問題,那么我已成功集成並記錄了我的所有步驟。

按照此解決您的問題: https : //gist.github.com/pishangujeniya/41a051572a471fa0311a8f4f6d0c5332

對於遇到同樣問題的其他人,VS2019 的 Manage Nuget Packages 窗口有點隱藏了我需要的包,我做了一些錯誤的假設。 我正在創建一個 .Net Framework 類庫來包裝我的數據庫,8.20.0 的 Nuget 包的命名與 6.xx 不同,我需要 MySql.Data 和 MySql.Data.EntityFramework。 第二個是.Net Core 的版本,名稱類似 MySql.Data.EntityFrameworkCore。 可惜沒有更好的錯誤報告。

我通過合並一些解決方案來解決問題:) 使用以下步驟:

  1. 安裝了最新的 MySQL Visual Studio 插件和 MySQL 連接器網絡
  2. 刪除了 App.config 或 Web.config 中的 entityFramework 標簽及其所有子標簽。
  3. 將其替換為以下代碼:
<entityFramework>
    <providers>
       <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework" />
    </providers>
</entityFramework>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM