1. 程式人生 > >使用EntityFramework6連線MySql資料庫(db first方式)

使用EntityFramework6連線MySql資料庫(db first方式)

準備工具:

程式包管理器執行命令:

Install-Package EntityFramework
Install-Package MySql.Data.Entity.EF6
Install-Package MySql.Data.Entity -Version 6.9.3

這塊已經可以直接Install-Package MySql.Data.Entity -Version 6.9.3用這個了

此時如果直接新增ado.net實體模型的話是有以下錯誤的:


注意了:App.config中生成的Provider是有問題的,這時候要手動新增紅色線畫出的一條:

注意了:下面的這塊截圖也可以不用了,因為你使用Install-Package MySql.Data.Entity -Version 6.9.3

可以自己生成了

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

這樣最好先編譯一下。

然後開始新增ADO.NET實體模型了

然後就是和以前的一樣了。

被這個問題折磨了很久,記錄下來備忘。希望能幫得到跟我一樣的你!

2017-06-14 vs2017 mysql5.7.18 ef6.1.3 mysql.data.entity6.9.9

 最新版vs2017連線mysql5.7時出現了這樣的一個問題:

解決方法如下:

1、重啟mysqld(一般為mysql57)服務

2、use mydb; (mydb是你要dbfirst的資料庫)set global optimizer_switch='derived_merge=OFF';

3、重新新增edmx模型並更新資料