1. 程式人生 > >您的專案引用了最新實體框架;但是,找不到資料鏈接所需的與版本相容的實體框架資料庫 EF6使用Mysql的技巧

您的專案引用了最新實體框架;但是,找不到資料鏈接所需的與版本相容的實體框架資料庫 EF6使用Mysql的技巧

  

  在vs2013中使用mysql連線entityFramework經常會遇到這個問題:您的專案引用了最新實體框架;但是,找不到資料連線所需的與版本相容的實體框架資料提供程式。請退出此嚮導,安裝相容提供程式,重新生成您的專案,然後再執行操作。

 在vs中 使用mysql的問題多的會讓人蛋疼。在這裡給個妥妥的一條龍解說哈。

<無耐心看過程講解的可直接看最下面>

    在建立實體模型的時候  資料來源選項很可能沒有MySql database,這問題很容易解決,只需要安裝 mysql-for-visualstudio 即可解決,這裡推薦版本是 mysql-for-visualstudio-1.2.3 。 還需要安裝一個 MySQL Connector/Net , 我們來看一看來自官網的介紹:MySQL 官方的 .NET 驅動程式,MySQL 官方的 .NET 客戶端開發包。mysql 資料庫最新版dotnet資料庫連線驅動。 所以 顯而易見,這個程式必須裝上,這裡推薦版本是 mysql-connector-net-6.8.3 。 PS: 這裡提醒下,這個版本不是越高的越合適,得配合你Mysql.data 的版本,目前大部分是使用mysql.data version 6.8.3 這版本。 如果安裝高於 mysql-connector-net - 6.8.3 版本 , 安裝後會修改VS下的machine.config :

<dependentAssembly>

<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="6.7.4.0" newVersion="6.8.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data.Entity" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="6.7.4.0" newVersion="6.8.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Web" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="6.7.4.0" newVersion="6.8.3.0" />
</dependentAssembly>

<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

這裡是安裝6.8.3 版本後 修改的machine.config 

安裝6.9.4版本,會時 newversion = "6.9.4"  會導致很多後期問題:例如 引用問題 : could not load file or assembly 'Mysql.Data, Versio=6.8.3'   錯誤號 : 0x80131040 這樣的程式集不匹配問題,在很多論壇上都看到過這個問題,造成的辦法也大多是因為machine.config 被修改,強制指向高版本,導致的程式集不匹配。 

當然這裡如果通過手動修改machine.config 解決這個問題,可以一時解決,但是會引起後期很多不必要的問題, 所以建議直接安裝 mysql-connector-net - 6.8.3

以上這兩個安裝完之後,恭喜你, 進入下一個錯誤, vs裡 就會提示上述圖片的錯誤。

這個錯誤的解決方案 網上的答案可以說是 眾多紛紜 奇葩朵朵開啊。 其實解決方案很簡單,人家都說了,找不到資料連線所需的與版本相容的實體框架資料提供程式。

這裡需要先安裝nuget 管理器 

在 - 工具 - 庫程式包管理器 - 程式包管理器控制檯 這裡 預設專案, 在PM>後 輸入 


Install-Package EntityFramework -Version 6.0.0
Install-Package EntityFramework.zh-Hans -Version 6.0.0
Install-Package MySql.Data.Entity.EF6

每一句輸完 回車執行

允許重新載入config. 

這時候在providers 裡 新增一個mysql.data.MysqlClint節點, 這個步驟很重要。

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>

效果如下

<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"></provider>

</providers>

到了這一步 ,重新生成一下方案  妥了! 

哈哈 不是微軟的親兒子就是事多!

這裡是個小總結。給急性子的朋友看:

需安裝:

mysql-for-visualstudio-1.2.3 

mysql-connector-net - 6.8.3

nuget 包管理器

nuget 控制檯輸入

Install-Package EntityFramework -Version 6.0.0
Install-Package EntityFramework.zh-Hans -Version 6.0.0
Install-Package MySql.Data.Entity.EF6

在.config 的providers 加一個節點

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>

完畢.

 哈哈 !!不要問 愛過!

相關推薦

MySql EF6 DBFirst 嚮導無法生成 edmx 解決方法(同:專案引用最新實體框架但是資料鏈版本相容實體框架資料庫提供程式)

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

專案引用最新實體框架但是資料鏈版本相容實體框架資料庫 EF6使用Mysql的技巧

     在vs2013中使用mysql連線entityFramework經常會遇到這個問題:您的專案引用了最新實體框架;但是,找不到資料連線所需的與版本相容的實體框架資料提供程式。請退出此嚮導,安裝相容提供程式,重新生成您的專案,然後再執行操作。  在vs中 使用mysql的問題多的會讓人蛋疼。在這

專案引用最新實體框架但是資料鏈版本相容實體框架資料庫 解決方法

環境: Windows10 VS2017 工具——》NuGet包管理器——》程式包管理器控制檯 PM>Install-Package EntityFramework -Version 6.0.0 Install-Package EntityFramework.

EF 相關問題:專案引用最新版實體框架但是...

這個問題的解決辦法在網上有很多,但是有的不全。我在這裡記錄一下: 1.檢查mysql connector 版本 與 專案中引用的mysql.data 和 mysql.entity.EF6的版本是否一致。 (後者版本可以大於前者) 2.檢查配置檔案中,是否存在對應的prov

專案引用DLL檔案也寫Using但是編譯時提示:未能找到型別或名稱空間名稱

今天用IKVM轉了2個dll給C#引用,發現了這個問題; 添加了dll檔案,寫了using,甚至在C#程式碼中寫dll裡的方法時,系統會有語句自動完成提示,寫好了也不會有任何問題,但是在除錯的時候,問題來了,系統報錯說:未能找到型別或名稱空間名稱“xxx”(是否缺少 usi

百度T7阿里P8資深架構師整理最新架構師學習體系分享給大家!

不管是開發、測試、運維,每個技術人員心裡都有一個成為技術大牛的夢,畢竟“夢想總是要有的,萬一實現了呢”!正是對技術夢的追求,促使我們不斷地努力和提升自己。 然而“夢想是美好的,現實卻是殘酷的”,很多同學在實際工作後就會發現,夢想是成為大牛,但做的事情看起來跟大牛都不沾邊  

JavaScript封裝自己的一個彈窗是雙按鈕的比較簡單一些 其中引用jQuery來寫的方法最後暴露出去有更好的建議歡迎評論 。。。。

$(function(){ // 設定自執行函式 (function(jQuery){ // 定義建構函式 var Popup = function (title,text,fn) { this.title = title || '

十幾位資深架構師整理最新架構師學習體系分享給大家!

不管是開發、測試、運維,每個技術人員心裡都有一個成為技術大牛的夢,畢竟“夢想總是要有的,萬一實現了呢”!正是對技術夢的追求,促使我們不斷地努力和提升自己。 然而“夢想是美好的,現實卻是殘酷的”,很多同學在實際工作後就會發現,夢想是成為大牛,但做的事情看起來跟大

引用的帳戶目前被鎖定可能會登錄。這個問題困擾我好久每次都要域管理員。

是什麽 設置 管理員 閾值 密碼 但是 出現 還需 帳戶 這個問題,一直出現,而且每次都要找域administrator,他給我的用戶權限是admin的,但是我經常被鎖住,這是為什麽呢?因為怕暴力破解密碼,所以設置了10次的閾值,但是鎖定以後,就不會再解開,30分鐘過了也不

C/C++編譯器教程之如何安裝vs的人應該都會裝只要手殘

什麽 dia color tps image spa pad 開始 有一個 這很簡單,其實我覺得不用教,但是吧,你們總有很多問題,所以,就有了這個安裝教程。以上是廢話。首先下載vs編譯器得相關文件就是這兩個文件,上面的txt和下面的iso文件對的,先下載,然後,下載完成之

解決eclipse中web專案部署至Tomcat在Tomcat安裝目錄下專案問題

必須知道的一點 Eclipse的web工程至Tomcat預設的部署目錄是在工程空間下,而myeclipse預設是在Tomcat安裝目錄下的(在webapps和work目錄下都會有你部署的專案) 那麼如何將部署目錄改為Tomcat安裝目錄 1.在Eclipse中新增Tomcat伺服

3星|《品類十三律》:基於定位理論略有發揮一些自己做的案例亮點

品類十三律 定位 強勢品牌 品牌營銷 真功夫 全書是作者們的理論加上實際操作過的案例。理論基於定位理論略有發揮,下了不少結論,缺乏嚴謹的邏輯推導與案例證明。舉了一些自己做過的案例,看後感覺亮點不多。 總體評價3星,有參考價值。 以下是書中一些內容的摘抄: 1:當我們在營銷領域集中研究消費者心智中這

在整型有序陣列中查詢想要的數字 找到返回下標到返回-1.(折半查詢)

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int BinarySearch(int a[], int key, int len) { int ret = -1;//找

在 ServiceModel 客戶端配置部分中引用協定“WebServiceSoap”的預設終結點元素。這可能是因為未找到應用程式的配置檔案或者是因為客戶端元素此協定匹配的終結點元素

在引用WebService後,程式執行到例項化WebService時報錯,錯誤如下: 由於WebService我是在類庫裡新增的,主程式引用了這個類庫,就出現了這個問題。 解決辦法: 根據異常資訊: “在 ServiceModel 客戶端配置部分中,找不到引用

MAC升級後到排程中心或者mission control

很多人在mac最左邊的介面裡面儲存了日期,mac升級後找不到這個介面了。問題是升級後自動關閉了這個選項,只需要開啟就好; 開啟系統偏好設定----選擇排程中心(mission control) 選擇儀表盤設定為作為空間(as Space) 完美解決。

在c#中引用Microsoft.SqlServer.Types後系統執行報"未能載入 SqlServerSpatial140.dll到指定的模組(異常來自......)的解決方法

1.在資源管理器中檢視C:\Windows\System32或者C:\Windows\SysWOW64下有沒有SqlServerSpatialXXX.dll的檔案,如果沒有,在網上下載後,把檔案重新命名為報錯的dll檔名,將其放入此目錄下 2.如果有,如下圖,我將原本的130改為140,程式便不

在 ServiceModel 客戶端配置部分中引用協定“PutMCCases.PutMCCasesSoap”的預設終結點元素。這可能是因為未找到應用程式的配置檔案或者是因為客戶端元素中

有一個Cache類庫,一個SDK類庫,一個WebService Web應用程式。 在SDK類庫中添加了UI的WebService引用,在Cache裡面引用了SDK類庫,想在Cache裡Call UI WebService 要在 在WebService Web主要應用程式當中

Windows到在無人蔘應答檔案的(ImageInstall)設定中指定的磁碟和分割槽請確保設定使用有效分割槽然後重新啟動安裝

問題描述: mac通過bootcamp安裝win10,進入安裝介面後報錯: Windows找不到在無人蔘與應答檔案的(ImageInstall)設定中指定的磁碟和分割槽,請確保設定使用了有效分割槽,然後重新啟動安裝。 問題解決: 原因是插入了行動硬碟,我的iso檔案放在移動

Vs 中關於專案中的某 NuGet 程式包還原失敗:到“xxx”版本的程式包“xxx”

問題:       首先出現這個bug的是在我的vs2017社群版的ide上,這兩天使用了出現了一個非常神奇的問題,就是我程式中的nuget包總提示找不到原始檔,並且我點選Nuget還原的話還一直提示著一個問題。 嚴重性 程式碼 說明 專案 檔案 行 禁止顯示狀態錯誤 專案 JJ