asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行
1.构建运行mysql容器,添加数据库user
参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html
添加user数据库,添加tbusers表

2.创建asp.net core webapi 应用程序
参考Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行,地址 http://www.cnblogs.com/heyangyi/p/9323407.html
<2.1> 修改 appsettings.json 文件,添加 dbconn 数据库链接配置

<2.2> 新增Config类,用来存储配置
public class Config
{
public static string dbconn;
}
<2.3> 修改Program 类,读取配置
public class Program
{
private static IConfigurationRoot Configuration { get; set; } public static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json"); Configuration = builder.Build();
Config.dbconn = Configuration.GetValue<string>("dbconn"); BuildWebHost(args).Run();
} public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
<2.4> 新增DataContext类
安装引用:MySql.Data.EntityFrameworkCore

public class DataContext : DbContext
{
public DbSet<tbuser> tbusers { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseMySQL(Config.dbconn);
}
public class tbuser
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int id { get; set; }
public string nickName { get; set; }
public string email { get; set; }
}
<2.5> 新增tbuserDataHandle类
public class tbuserDataHandle : DataContext
{
public static int adduser(tbuser user)
{
try
{
using (var context = new DataContext())
{
context.Database.EnsureCreated();
context.Add(user); context.SaveChanges();
}
return 200;
}
catch (Exception ex)
{
return 300;
}
} public static List<tbuser> Get()
{
try
{
using (var context = new DataContext())
{
var users = context.tbusers;
List<tbuser> items = new List<tbuser>();
foreach (var item in users)
{
items.Add(item);
}
return items;
}
}
catch (Exception ex)
{
return null;
}
} public static tbuser Get(int id)
{
try
{
using (var context = new DataContext())
{
var u = context.tbusers.Find(id);
return u;
}
}
catch (Exception ex)
{
return null;
}
} public static int Delete(int id)
{
try
{
using (var context = new DataContext())
{
var u = context.tbusers.Remove(new tbuser() { id = id });
context.SaveChanges();
return 200;
}
}
catch (Exception ex)
{
return 300;
}
} public static int Put(int id, tbuser user)
{
try
{
using (var context = new DataContext())
{
var u = context.tbusers.Update(user);
context.SaveChanges();
return 200;
}
}
catch (Exception ex)
{
return 300;
}
}
}
<2.6> 新增userController Api
[Produces("application/json")]
[Route("api/user")]
public class userController : Controller
{
// POST api/user
[HttpPost]
public int Post(tbuser user)
{
return tbuserDataHandle.adduser(user);
}
// GET api/user
[HttpGet]
public List<tbuser> Get()
{
return tbuserDataHandle.Get();
}
// GET api/user/5
[HttpGet("{id}")]
public tbuser Get(int id)
{
return tbuserDataHandle.Get(id);
}
// DELETE api/user/5
[HttpDelete("{id}")]
public int Delete(int id)
{
return tbuserDataHandle.Delete(id);
}
// PUT api/user/5
[HttpPut("{id}")]
public int Put(int id, tbuser user)
{
return tbuserDataHandle.Put(id, user);
}
}
3.生成项目,构建docker镜像并创作容器运行
修改 docker-compose.yml ,docker-compose.override.yml 的 version 为:
version: '2.0'
配置 appsettings.json 的 dbconn 为:
"dbconn": "server=192.168.99.100;user id=root;password=123456;persistsecurityinfo=True;port=3307;database=user;SslMode=none"
进入到 E:\web\ilinkcore (这个目录为解决方案的根目录)
docker-compose up

- up 自动完成包括构建镜像,创建服务,启动服务并关联服务容器的一系列操作
执行成功后创建一个 ilinkcore 的镜像,并且运行了一个 ilinkcore_ilinkcore_1的容器,将本机的32783端口映射到容器的80端口


4.测试访问接口
添加反向代理,修改nginx 配置
server{
listen 84;
server_name localhost;
location / {
proxy_pass http://192.168.99.100:32783;
index index.html index.htm;
}
}
重新运行nginx,使用Postman进行api接口测试

<4.1> 测试接口进行添加user数据

Headers 中添加项:
Content-Type:application/json
<4.2>查看所有用户数据

<4.3> 检索某个用户数据

<4.4> 更新某个用户数据

Headers 中添加项:
Content-Type:application/json

<4.5> 删除单个用户


asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行的更多相关文章
- Asp.Net操作MySql数据库增删改查
Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git 1.安装MySQL数据库 ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- MySQL数据库(增删改查语句)
MySQL数据库(增删改查语句)一.登录数据库:----> mysql -uroot -proot;(对应用户名和密码)二.SQL语句: 数据定义语言DDL 用来定义数据库.表.列,关 ...
- python操作mysql数据库增删改查的dbutils实例
python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...
- Mysql 的 增删改查
mysql的增删改查 1:新建数据库 create database 数据库名 [其他选项]; 2:新建数据表 create table students ( id int unsigned not ...
- MySQL之增删改查之
MySQL之增删改查 前言:以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表上,未涉及多表操作. ...
- MySql之增删改查 · YbWork's Studio
前提:在进行"增删改查"的操作之前,先建立一个包含数据表student的数据库(具体操作可以见MySQL之最基本命令): 1."增"--添加数据 1.1 为表中 ...
- 使用MySQL练习增删改查时因为版本问题出现连接错误
使用MySQL练习增删改查时出现连接错误,错误提示如下: 2020-02-19 19:53:51.088 ERROR 16328 --- [reate-249798694] com.alibaba.d ...
- koa+mysql实现增删改查-全栈之路(001)
Date: 2020-4-23 以前很少写文章,从今天开始我要挑战一下自己,连续输出100篇技术类文章.这100篇文章我尽量以实战案例为主. 如果你觉得本文还不错,记得关注或者给个 star,你们的赞 ...
随机推荐
- Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明2
1. 安装build-essentials 安装开发所需要的一些基本包 sudo apt-get install build-essential 2. 安装NVIDIA驱动 (3.4.0) 2.1 准 ...
- hadoop 的HDFS 的 standby namenode无法启动事故处理
standby namenode无法启动 现象:线上使用的2.5.0-cdh5.3.2版本Hadoop,开启了了NameNode HA,HA采用QJM方式.hadoop的集群的namenode的sta ...
- .Net Core Razor 预编译,动态编译,混合编译
预编译 预编译是ASP .Net Core的默认方式.在发布时,默认会将系统中的所有Razor视图进行预编译.编译好的视图DLL统一命名为 xxx.PrecompiledViews.dll 或者 xx ...
- WPF 使用 Direct2D1 画图 绘制基本图形
本文来告诉大家如何在 Direct2D1 绘制基本图形,包括线段.矩形.椭圆 本文是一个系列 WPF 使用 Direct2D1 画图入门 WPF 使用 Direct2D1 画图 绘制基本图形 本文的组 ...
- .NET Entity Framework (with Oracle ODP.NET) -Code First
上一篇文章介绍了.NET Entity Framework ,并演示了Model First模式,本文将继续讨论 Code First 模式的实现. 一.摘要 1.目标 本文验证了通过Oracle D ...
- 多项式&生成函数(~~乱讲~~)
多项式 多项式乘法 FFT,NTT,MTT不是前置知识吗?随便学一下就好了(虽然我到现在还是不会MTT,exlucas也不会用) FTT总结 NTT总结 泰勒展开 如果一个多项式\(f(x)\)在\( ...
- 混合表单文件上传到数据库(基于TOMCAT)
在实际的开发中在实现文件上传的同时肯定还有其他信息需要保存到数据库,就像混合表单在上传完毕之后需要将提交的基本信息插入数据库. 在这个demo中需要用到这个架包来帮助实现 1.定义一个公共类实现文件上 ...
- Linux启动流程与模块管理(15)
系统的启动其实是一项非常复杂的过程,因为内核得要检测硬件并加载适当的驱动程序,接下来则必须要调用程序来准备好系统运行的环境,以让用户能够顺利的操作整台主机系统,如果你能够理解系统启动的原理,那么将有助 ...
- odoo开发环境搭建(三):安装odoo依赖的python包
odoo开发环境搭建(三):安装odoo依赖的python包 http://www.cnblogs.com/jlzhou/p/5940815.html
- 理解WSGI
WSGI是什么? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义 ...