使用EF CodeFirst鏈接MySql數據庫

如何使用EF CodeFirst鏈接MySql數據庫?web

咱們這篇文章介紹怎麼使用EF鏈接MySqlsql

做者的環境

VS201七、Win十、MySql5.x數據庫

前言

通常在EF中,默認是使用SqlServer數據庫。
爲何咱們要使用Mysql呢?
一方面如今的數據庫多種多樣,發展到了非關係數據庫、內存數據存儲等,不得不用其餘的軟件;
另外一方面C#很早也開始了開源與支持多平臺(core)的路程ide

開始新建項目

咱們這裏新建的是WebApi項目,固然你喜歡什麼類型項目都同樣。
咱們新建項目叫EfAndMySqlsqlserver

開始安裝包

install-package MySql.Data.Entity
咱們這裏的版本是6.9.9
此包由於是依賴EF包的,因此安裝此包時會自動安裝EF包。code

開始添加codefirst

項目建完後,咱們新建一個數據模型:右鍵->新建項->數據->ADO.NET實體數據模型。名字爲Model,以下圖:
imgserver

點擊添加後,咱們選擇【空Code First模型】
imgblog

配置web.config

安裝完成後,咱們配置webconfig文件。內存

把原來的entityFramework節點換成:it

<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的數據庫:
img




到此,結束配置

 

 

能夠關注本人的公衆號,多年經驗的原創文章共享給你們。

相關文章
相關標籤/搜索