使用 MySql EF6 DBfirst 生成模型時常常會遇到EF6模式沒法選擇的狀況究其緣由, 仍是由於沒有正確的使用 Connector/Net. 下面說一下使用方法. 使用 MySql DBFirst 前先確保安裝了 MySql, MySQL for Visual Studio, Connector/Net 注意: MySQL for Visual Studio, Connector/Net 版本要對應 MySql 版本.mysql
-
新建一個項目, 從 nuget 中添加 EF6
1Install-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 文件
添加一行 providersql
1<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
添加完以下所示
1234567891011<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 沒有安裝或安裝不正確. 從新安裝.
這裏能夠正確顯示了.windows