系列目录:

【Docker】 CentOS7 安装 Docker 及其使用方法 ( 一 )

【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二)

【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)

.......持续不定期更新中

之前一直用.Net Core 2.1 ,发现3.1后有很多地方和原来的操作不同,踩了一些坑,所以记录一下3.1的操作方法

1.开发环境

.Net Core 3.1

MySql : 5.7.32

2.创建webapi项目

3.查看项目结构,新建ValuesController ,运行项目,打开浏览器访问项目地址 XXX/api/Values

    [Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
[HttpGet]
public string Get()
{
return "value";
}
}

4.集成EntityFramework,打开Nuget,安装EntityFramework的包 

下载如下包:

Pomelo.EntityFrameworkCore.MySql      此包用于集成EF,进行增删改查等操作

Microsoft.EntityFrameworkCore.Tools     此包是EF工具包,没有不可以使用数据迁移更新数据库

P.S : MySql.Data.XXX   等Mysql官方包不可用 最新版8.0.22 目前不支持.Net Core 3.1,安装后不可用 。

appsetting.json文件添加数据库连接

"ConnectionStrings": {
"conn": "Data Source=localhost;Database=test;User ID=root;Password=sima1234;port=3306;sslmode=none;"
},

添加数据库DbContext类

public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
{
}
public DbSet<User> users { get; set; }
}

打开startup.cs,把db对象注入一下,方便Controller层使用,再改造一下Controller,把路径改成自定义。

services.AddScoped<DbContext, MyDbContext>();   //注入一下db对象
services.AddDbContext<MyDbContext>(options => options.UseMySql(Configuration.GetConnectionString("conn")));

5.打开程序包管理控制台,使用Code First创建数据库

add-Migration init    \\ init是名字 随便自己取名字  如果有错可以用 Remove-Migration 回退
update-database \\ 上一步成功后更新数据库

生成的Migration迁移文件

打开数据库查看,user成功创建,另外那张表是ef数据迁移版本记录表

6.修改Controller层代码,自定义访问路径

    [Route("/[controller]/[action]")]
[ApiController]
public class ValuesController : ControllerBase
{
private DbContext _db;
public ValuesController(MyDbContext db)
{
this._db = db;
} [HttpGet]
public async Task<string> Add()
{
User user = new User();
user.Username = "admin";
user.Password = "123456";
await _db.Set<User>().AddAsync(user);
await _db.SaveChangesAsync();
return "value";
}
}

运行结果,注意!访问地址已经为自己定义的了。

7 配置swagger

配置swagger 用于自动生成接口文档,给前端同事查看。

下载此包 Swashbuckle.AspNetCore

将 Swagger 生成器添加到 Startup.ConfigureServices 方法中的服务集合中:

P.S: .Net Core 3.1之后的版本  不用使用 new Info 要用 new OpenApiInfo

// 注册Swagger,定义一个和多个文档
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
});

在 Startup.Configure 方法中,启用中间件为生成 Swagger。

// 启用中间件服务生成Swagger            
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "接口文档");
});

修改接口代码

     /// <summary>
/// 添加用户
/// </summary>
/// <param name="user">用户实体</param>
/// <returns></returns>
[HttpPost]
public async Task<string> Add(User user)
{
await _db.Set<User>().AddAsync(user);
await _db.SaveChangesAsync();
return "value";
} /// <summary>
/// 获取所有用户
/// </summary>
/// <returns>所有用户</returns>
[HttpGet]
public async Task<List<User>> GetList()
{
var list = await _db.Set<User>().ToListAsync();
return list;
}

打开网站 访问   XXXX/swagger/inedx.html 访问Swagger文档,接口信息成功显示

8. wagger显示接口注释

右键点击项目-属性-生成,输出xml文档文件,打钩,用于swagger调用显示注释。

打断点查看具体生成地址,此xml文件生成在这里

运行项目,查看,已经有了注释

9. 关闭需要输入注释的警告

项目中有些不想输入注释的地方也会提示要求输入注释!很烦 !

右键点击项目-属性,取消显示警告,添加1591

添加后重新运行项目,问题解决。

【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)的更多相关文章

  1. asp.net core 2.0 webapi集成signalr

    asp.net core 2.0 webapi集成signalr   在博客园也很多年了,一直未曾分享过什么东西,也没有写过博客,但自己也是汲取着博客园的知识成长的: 这两天想着不能这么无私,最近.N ...

  2. asp.net core 系列之webapi集成Dapper的简单操作教程

    Dapper也是是一种ORM框架 这里记录下,使用ASP.NET 集成 Dapper 的过程,方便自己查看 至于Dapper的特性以及操作可以参考Dapper官方文档 1.创建数据库相关 在Sql S ...

  3. asp.net core 系列之webapi集成EFCore的简单操作教程

    因为官网asp.net core webapi教程部分,给出的是使用内存中的数据即 UseInMemoryDatabase 的方式, 这里记录一下,使用SQL Server数据库的方式即 UseSql ...

  4. C# 之 .net core -- EF code first连接Mysql数据库

    一.在Models 新建两个数据库类 这个是数据库需要生成的类基础(塑造外观) public class User { [Key] public string ID { get; set; } [Ma ...

  5. EF Code First 连接MySql

    看了很多文章,尝试了很多次总是进行不下去,整理一下,以便日后查看. 1.创建ASP.NET MVC项目(EFCodeFirst) 1.1.右键点击引用选择管理NuGet程序包下载MySql.Data. ...

  6. ASP.NET Core 2.2 WebApi 系列【五】MiniProfiler与Swagger集成

    MiniProfiler 是一款性能分析的轻量级程序,可以基于action(request)记录每个阶段的耗时时长,还是可以显示访问数据库时的SQL(支持EF.EF Code First)等 一.安装 ...

  7. asp.net core系列 37 WebAPI 使用OpenAPI (swagger)中间件

    一.概述 在使用Web API时,对于开发人员来说,了解其各种方法可能是一项挑战.在ASP.NET Core上,Web api 辅助工具介绍二个中间件,包括:Swashbuckle和NSwag .NE ...

  8. WebApi 集成 Swagger

    1. Swagger(俗称:丝袜哥)是什么东西? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同 ...

  9. mvc+webapi+dapper+ef codefirst项目搭建

    首先项目是mvc5+webapi2.0+orm数据处理(dapper)+ef动态创建数据库. 1.项目框架层次结构: mvc项目根据不同的业务和功能进行不同的区域划分[今后项目维护起来方便],mode ...

随机推荐

  1. 剑指Offer-Python(6-10)

    6.旋转数组的最小数字 class Solution: def minNumberInRotateArray(self, rotateArray): l = len(rotateArray) if l ...

  2. nginx&http 第二章 ngx启动多进程

    Nginx服务器使用 master/worker 多进程模式. 主进程(Master process)启动后,会接收和处理外部信号: 主进程启动后通过fork() 函数产生一个或多个子进程(work ...

  3. Ceph中的Copyset概念和使用方法

    前言 copyset运用好能带来什么好处 降低故障情况下的数据丢失概率(增加可用性) 降低资源占用,从而降低负载 copyset的概念 首先我们要理解copyset的概念,用通俗的话说就是,包含一个数 ...

  4. 卸载python安装的软件

    python源码安装的软件是无法通过命令卸载的,这个可以通过记录安装过程的形式来卸载安装的软件 以 python2.7.2 为例,在这个目录中有一个 setup.py 的文件,很显然这是安装程序,还是 ...

  5. Python面试题_中级版

    Python 面试题 1.Python是如何进行内存管理的 对象引用机制.垃圾回收机制.内存池机制 1.1对象引用机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数. 引 ...

  6. Dubbo 服务引入-Version2.7.5

    1.服务引用原理 Dubbo 服务引用的时机有两个,第一个是在 Spring 容器调用 ReferenceBean 的 afterPropertiesSet 方法时引用服务,第二个是在 Referen ...

  7. 利用requestes\pyquery\BeautifulSoup爬取某租房公寓(深圳市)4755条租房信息及总结

    为了分析深圳市所有长租.短租公寓的信息,爬取了某租房公寓深圳区域所有在租公寓信息,以下记录了爬取过程以及爬取过程中遇到的问题: 爬取代码: 1 import requests 2 from reque ...

  8. C#设计模式——代理模式(Proxy Pattern)

    引言 在我们的生活中,经常会遇到需要什么东西,但是自己又不是很方便或者对方不是很方便,则就需要中间的一个代理人去解决.例如代购.在软件开发中,也会遇到这样的问题.有些对象有时候会由于网络或其他的障碍, ...

  9. Ubuntu sudo 出现unable to resolve host 解决方法

    Ubuntu sudo 出现unable to resolve host 解决方法 Ubuntu环境, 假设这台机器名字叫abc(机器的hostname), 每次执行sudo 就出现这个警告讯息: s ...

  10. 【linux】串口通讯工具-minicom简介+简单操作

    目录 前言 简介 尝试运行 配置 minicom 运行 minicom minicom 其它操作 前言 windows 上有不少的串口通信工具了,今天介绍一个linux下的一个串口通信工具-minic ...