1. 程式人生 > >使用EF CodeFirst連線MySql資料庫

使用EF CodeFirst連線MySql資料庫

開始安裝包

install-package MySql.Data.Entity
我們這裡的版本是6.9.9
此包因為是依賴EF包的,所以安裝此包時會自動安裝EF包。

 

配置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的資料庫: