一切福田,不離方寸,從心而覓,感無不通。

ASP.NET Core使用EF Core操作MySql数据库

ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上

使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql.Data.EntityFrameworkCore(8.0.13)

 

软件版本

Asp.net Core:2.1

MySql:5.6

 

项目结构

Snai.Mysql 是 Asp.net core 2.0 Api网站,Database 下的是MySql建库建表脚本

项目实现

一、MySql 建库建表

使用 Database下的 mysql 建库 表 主键 索引.sql 脚本建库建表,脚本如下:

 

建库时加上 CHARACTER SET utf8 COLLATE utf8_general_ci 代码,设置数据库字符集为 utf8,配合程序的数据库连接串加上 CharSet=utf8,防止中文保存时乱码

如果建库时不是utf8,就把字符集改为utf8

二、EF Core 连接操作 MySql 数据库

1、新建项目,添加EF Core 和 MySql驱动依赖项

新建 asp.net core api 网站程序,NuGet 添加依赖项 Microsoft.EntityFrameworkCore.Tools(2.1.4) 和 MySql.Data.EntityFrameworkCore(8.0.13) 包

2、添加实体类Student和数据库上下文

新建 Entities 目录,在,根据表及字段,在目录下新建 Student 实体类,在类上加  [Table("student")] 表名、属性上加[Column("id")] 字段名等与表对应,代码如下:

在根目录下加上 DataAccess 目录做为数据库操作目录,在该目录下加上 Base 目录做数据库上下文目录

在 Base 目录下新建 AlanContext 上下文类,继承 DbContext 类,通过构造函数注入数据库连接,添加 DbSet<Student> 实体属性,代码如下:

3、添、删、改、查 数据库记录

在 DataAccess 目录下新建 Interface 目录,用于保存数据库操作的接口,在该目录下新建 IAlanDao 接口,在接口里增加 CreateStudent(),GetStudents(),GetStudentByID(),UpdateStudent(),UpdateNameByID(),DeleteStudentByID() 数据库 添、删、改、查接口,代码如下:

在 DataAccess 目录下新建 Implement 目录,用于保存数据库操作接口的实现,在该目录下新建 AlanDao 类,继承 IAlanDao 接口,实现接口里的数据库操作方法,在构造函数注入 AlanContext 数据库上下文,代码如下:

4、添加 StudentController 控制器,调用数据库操作方法

在 Controllers 目录下,添加 StudentController 控制器,在构造函数注入 AlanDao 数据库操作,在控制器里 创建 Create(),Gets(),Get(),Update(),UpdateName(),Delete()等方法,调用 AlanDao 数据库操作方法,代码如下:

5、配置数据库连接串,注册数据库连接到容器,注册数据库操作类到容器,修改路由

在 appsettings.json 中配置数据库连接串 "AlanConnection": "server=localhost;port=3306;database=alan;uid=root;pwd=123456;CharSet=utf8" ,CharSet=utf8 是为了配合数据库 utf8 字符集,防止中文乱码:

修改 Startup.cs 类的 ConfigureServices() 方法,注册数据库连接,注册数据库操作类

注册数据库连接 services.AddDbContext<AlanContext>(options => options.UseMySQL(Configuration.GetConnectionString("AlanConnection")));

UseMySql() 为使用 MySql 数据库,如果是 Sql Server 则使用 UseSqlServer()

注册数据库操作类 services.AddScoped<IAlanDao, AlanDao>();

修改路由,添加默认路由,以  controller、action,MVC的路径方式访问而不是 restful api 路径方式访问

到此代码编写已完成

 

三、运行测试数据库添、删、改、查

运行项目

1、添加记录,打开 http://localhost:5000/Student/Create?name=小木&sex=0&age=18 地址,数据插入成功

image

微信截图_20181130103801

2、查询全部记录,打开 http://localhost:5000/Student/Gets 地址,取姓名列表成功

image

image

3、查询指定id的记录,打开 http://localhost:5000/Student/Get?id=1 地址,取姓名成功

image

4、更新指定id的整条记录,打开 http://localhost:5000/Student/Update?id=1&name=小森&sex=1&age=18 地址,更新整条记录成功

image

image

5、更新指定id的姓名,打开 http://localhost:5000/Student/UpdateName?id=2&name=amos 地址,更新姓名成功

image

image

6、删除指定id的记录,打开 http://localhost:5000/Student/Delete?id=2 地址,删除记录成功

image

image

 

EF Core 添、删、改、查 MySql 数据库已完成

Github源码地址:https://github.com/Liu-Alan/Snai.Study/tree/master/Snai.Mysql

 

from:https://www.cnblogs.com/alan-lin/p/9997657.html