[英]Could not connect to MySQL through EF6 in Visual Studio 2013
我正在嘗試在 Visual Studio 中使用 EF6 連接到 MYSQL 數據庫,后來我使用 SQL 並且在我轉移到 Mysql 之后它工作正常,然后我安裝了這些必需的組件:
您的項目引用了最新版本的實體框架; 但是,無法為您的數據連接找到與此版本兼容的實體框架數據庫提供程序。 在執行此操作之前退出此向導,安裝兼容的提供程序並重建您的項目
我嘗試了可能的在線解決方案,例如重新安裝此組件但它不起作用,否則我嘗試將此代碼添加到我的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 或任何東西。
<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.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。 可惜沒有更好的錯誤報告。
我通過合並一些解決方案來解決問題:) 使用以下步驟:
<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.