使用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




到此,结束配置

 

 

能够关注本人的公众号,多年经验的原创文章共享给你们。

相关文章
相关标签/搜索