如何使用EF CodeFirst鏈接MySql數據庫?html
咱們這篇文章介紹怎麼使用EF鏈接MySqlweb
做者的環境
VS201七、Win十、MySql5.xsql
前言
通常在EF中,默認是使用SqlServer數據庫。
爲何咱們要使用Mysql呢?
一方面如今的數據庫多種多樣,發展到了非關係數據庫、內存數據存儲等,不得不用其餘的軟件;
另外一方面C#很早也開始了開源與支持多平臺(core)的路程數據庫
開始新建項目
咱們這裏新建的是WebApi項目,固然你喜歡什麼類型項目都同樣。
咱們新建項目叫EfAndMySqlide
開始安裝包
install-package MySql.Data.Entity
咱們這裏的版本是6.9.9
此包由於是依賴EF包的,因此安裝此包時會自動安裝EF包。sqlserver
開始添加codefirst
項目建完後,咱們新建一個數據模型:右鍵->新建項->數據->ADO.NET實體數據模型。名字爲Model,以下圖:
post
點擊添加後,咱們選擇【空Code First模型】
url
配置web.config
安裝完成後,咱們配置webconfig文件。spa
把原來的entityFramework節點換成:code
<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