使用EF CodeFirst連接MySql資料庫 如何使用EF CodeFirst連接MySql資料庫? 我們這篇文章介紹怎麼使用EF連接MySql 作者的環境 VS2017、Win10、MySql5.x 前言 一般在EF中,預設是使用SqlServer資料庫。為什麼我們要使用Mysql呢?一方面現 ...
使用EF CodeFirst連接MySql資料庫
如何使用EF CodeFirst連接MySql資料庫?
我們這篇文章介紹怎麼使用EF連接MySql
作者的環境
VS2017、Win10、MySql5.x
前言
一般在EF中,預設是使用SqlServer資料庫。
為什麼我們要使用Mysql呢?
一方面現在的資料庫多種多樣,發展到了非關係資料庫、記憶體數據存儲等,不得不用其他的軟體;
另一方面C#很早也開始了開源與支持多平臺(core)的路程
開始新建項目
我們這裡新建的是WebApi項目,當然你喜歡什麼類型項目都一樣。
我們新建項目叫EfAndMySql
開始安裝包
install-package MySql.Data.Entity
我們這裡的版本是6.9.9
此包因為是依賴EF包的,所以安裝此包時會自動安裝EF包。
開始添加codefirst
項目建完後,我們新建一個數據模型:右鍵->新建項->數據->ADO.NET實體數據模型。名字為Model,如下圖:
點擊添加後,我們選擇【空Code First模型】
配置web.config
安裝完成後,我們配置webconfig文件。
把原來的entityFramework節點換成:
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<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>
</entityFramework>
把原來的connectionStrings換成我們MYSQL的連接:
<connectionStrings>
<add name="Model" connectionString="Data Source=localhost;port=3306;Initial Catalog=EfMysql;user id=root;password=root;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
值得註意的是,程式是怎麼驗證我們連接的是Mysql資料庫,而不是sqlserver呢?答案就在connectionString中的providerName="MySql.Data.MySqlClient"。 如果我們想用sqlserver或其他資料庫的連接,導入相應的包,換連接與providerName就可以了。
輸入命令與驗證
在程式包管理器控制台以此輸入:
enable-migrations
add-migration init
update-database
在看看我們的Mysql,成功安裝了EfMysql的資料庫:
到此,結束配置
轉載 https://www.cnblogs.com/alunchen/p/7188562.html