使用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,如下圖:
img

點擊添加后,我們選擇【空Code First模型】
img

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




到此,結束配置

 

 

可以關注本人的公眾號,多年經驗的原創文章共享給大家。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM