欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用EF CodeFirst连接MySql数据库

程序员文章站 2022-06-09 13:47:08
使用EF CodeFirst连接MySql数据库 如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017、Win10、MySql5.x 前言 一般在EF中,默认是使用SqlServer数据库。为什么我们要使用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,如下图:
使用EF CodeFirst连接MySql数据库

点击添加后,我们选择【空code first模型】
使用EF CodeFirst连接MySql数据库

配置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的数据库:
使用EF CodeFirst连接MySql数据库




到此,结束配置

 转载 https://www.cnblogs.com/alunchen/p/7188562.html