1. 程式人生 > >MySql EF6 DBFirst 嚮導無法生成 edmx 解決方法(同:您的專案引用了最新實體框架;但是,找不到資料鏈接所需的與版本相容的實體框架資料庫提供程式)

MySql EF6 DBFirst 嚮導無法生成 edmx 解決方法(同:您的專案引用了最新實體框架;但是,找不到資料鏈接所需的與版本相容的實體框架資料庫提供程式)

使用 MySql EF6 DBfirst 生成模型時經常會遇到EF6模式無法選擇的情況1究其原因, 還是因為沒有正確的使用 Connector/Net. 下面說一下使用方法. 使用 MySql DBFirst 前先確保安裝了 MySqlMySQL for Visual StudioConnector/Net 注意: MySQL for Visual Studio, Connector/Net 版本要對應 MySql 版本.

    1. 新建一個專案, 從 nuget 中新增 EF6

       

       
      1 Install-Package EntityFramework

      在專案的”引用”上點右鍵新增dll引用.7選擇擴充套件程式集, 勾選 MySql.Data.Entity for EF6 , 注意提示框中的版本, 一個是4.0, 一個是 4.5. 這個dll 是安裝 Connector/Net 後才有的.8
      注意: 用 nuget 安裝 MySql.Data.Entity 也會自動引用 MySql.Data.Entity.EF6.dll. 但是這個 dll 在生成 edmx 時會出錯. 所以才要像上面一樣從擴充套件中引用 dll
    2. 修改 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>

      重新生成一下專案, 到這裡問題就已經解決了. 下面是效果.
    3. 在專案中新增新的 “Ado.Net 實體資料模型”(即 edmx 檔案)

      243如果資料來源不是 MySql, 點更新, 修改為MySql.5如果沒有MySql Database , 說明 Connector/Net 沒有安裝或安裝不正確. 重新安裝.69這裡可以正確顯示了.