MySql EF6 DBFirst 嚮導無法生成 edmx 解決方法(同:您的專案引用了最新實體框架;但是,找不到資料鏈接所需的與版本相容的實體框架資料庫提供程式)
阿新 • • 發佈:2018-12-25
使用 MySql EF6 DBfirst 生成模型時經常會遇到EF6模式無法選擇的情況究其原因, 還是因為沒有正確的使用 Connector/Net. 下面說一下使用方法. 使用 MySql DBFirst 前先確保安裝了 MySql, MySQL for Visual Studio, Connector/Net 注意: MySQL for Visual Studio, Connector/Net 版本要對應 MySql 版本.
-
新建一個專案, 從 nuget 中新增 EF6
1 Install-Package EntityFramework
在專案的”引用”上點右鍵新增dll引用.選擇擴充套件程式集, 勾選 MySql.Data.Entity for EF6 , 注意提示框中的版本, 一個是4.0, 一個是 4.5. 這個dll 是安裝 Connector/Net 後才有的.
注意: 用 nuget 安裝 MySql.Data.Entity 也會自動引用 MySql.Data.Entity.EF6.dll. 但是這個 dll 在生成 edmx 時會出錯. 所以才要像上面一樣從擴充套件中引用 dll -
修改 config 檔案
新增一行 provider
1 <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
新增完如下所示
1 2 3 4 5 6 7 8 9 10 11 <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v12.0" /> </parameters> </defaultConnectionFactory> <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.Entity.EF6" /> </providers> </entityFramework>
重新生成一下專案, 到這裡問題就已經解決了. 下面是效果. -
在專案中新增新的 “Ado.Net 實體資料模型”(即 edmx 檔案)
如果資料來源不是 MySql, 點更新, 修改為MySql.如果沒有MySql Database , 說明 Connector/Net 沒有安裝或安裝不正確. 重新安裝.這裡可以正確顯示了.