.Net Core控制台&EFCore连接Mysql
在用惯了Asp.Net Core提供的基架后,反过来想一想,貌似忘记了控制台如何去连接数据库了,因此,写一篇文章来借此巩固下并以后再来回顾时,加快步骤。
1、新建一个.Net Core控制台,然后安装Nuget包
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Design
Pomelo.EntityFrameworkCore.MySql
Microsoft.Extensions.Configuration.Json
2、添加一个文件夹Models,并增加一个实体类Company,增加该实体类一系列属性
namespace FastConnect.Tool.Models
{
/// <summary>
/// 公司信息
/// </summary>
public class Company
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; } /// <summary>
/// 公司名称
/// </summary>
public string Name { get; set; } /// <summary>
/// 公司地址
/// </summary>
public string Address { get; set; }
}
}
3、再增加一个配置文件appsettings.json,按照数据库具体配置去弄,比如接口,用户名密码等,并且本次想用的数据库名。需右键设置该文件的输出方式为始终复制。
{
"ConnectionStrings": {
"Default": "Server=xxx;Database=fastconnectdb;Port=10143;charset=utf8;uid=tester;pwd=xxx@yy;"
}
}
4、增加DbContext,并继承DbContext,该父类在EFCore中,将之前建立的类加入到该DbContext中,配置这个数据库上下文需要的连接字符串,通过配置类去读取第二步骤中的配置项文件,在OnConfiguring中使用UseMysql,该方法在Pomelo的dll中并读取其中的默认连接字符串节点。
using FastConnect.Tool.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System.IO; namespace FastConnect.Tool
{
public class FastConnectDbContext : DbContext
{
public DbSet<Company> Companys { get; set; } private IConfiguration configuration; public FastConnectDbContext()
{
configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();
} protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySql(configuration.GetConnectionString("Default"));
}
}
}
5、在程序包管理器控制台中选择该项目,必须要选择DbContext所在项目,本次DbContext所在项目为控制台本部。
并键入如下两行,如无错误,则数据库已经生成,可以查看项目文件夹中,将会多出一个文件夹和若干文件,这是记录迁移信息的。
add-migration InitDataBase
update-database
查看数据库中,已经生成了两张表,第一张是由EFCore维护的迁移记录表,第二张是我们所建立的实体表
6、在Program.cs文件中加入一点对数据库的操作,通过using来管理数据库的连接,这种方式较为便捷,当然也可以使用其它方式来管理。
class Program
{
static void Main(string[] args)
{
using (var dbContext = new FastConnectDbContext())
{
dbContext.Companys.Add(new Company
{
Name = "星城科技",
Address = "湖南长沙雨花区"
}); dbContext.SaveChanges(); Console.WriteLine("All Company in database:");
foreach (var company in dbContext.Companys)
{
Console.WriteLine("{0}-{1}", company.Name, company.Address);
}
Console.ReadKey();
}
}
}
7、设置当前项目为启动项目,启动查看运行效果,数据加入到数据库中,并从数据库中再次读取出来:
8、最终控制台项目结构
仓库地址:https://gitee.com/530521314/Partner.TreasureChest.git
2019-12-06,望技术有成后能回来看见自己的脚步
.Net Core控制台&EFCore连接Mysql的更多相关文章
- DotNetCore跨平台~EFCore连接Mysql的方式
回到目录 在.net frameworks的ef里连接mysql我们已经测试通过了,而在dotnet core里的efCore上去连接mysql我们需要测试一下,并且在测试过程中出现了一些问题,当然最 ...
- .NetCore教程之 EFCore连接Mysql DBFirst模式
一:创建EF的类库,同时将此项目设置为启动项(为Scaffold-DbContext -tables指令使用),同时安装2个包 ①Microsoft.EntityFrameworkCore.Too ...
- 在控制台远程连接mysql数据库时,出现ERROR 2049 (HY000)错误
问题的原因是,你本地的数据库版本过高,而远程的数据库版本低. 解决方法:在连接时加上 --skip-secure-auth 参数就可以了. mysql -h主机 -u用户名 -p密码 --skip- ...
- EFCore CodeFirst 连接MySql
一.工具及环境 Visual Studio 2017 15.4.3 MySql Navicat for MySQL 二.Entity Framwork Core 2.0 MySql Code Firs ...
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...
- .net core WebAPI 初探及连接MySQL
1. 前言 笔者最近跟着微软官方文档学习.net core WebAPI,但发现其对 WebAPI 连接数据库.读取数据库方面讲得不够细致明了.写此文的目的,即实现 .net core WebAPI ...
- 第八节:EF Core连接MySql数据库
一. 前提 1.安装EF Core连接MySQL的驱动,这里有两类: (1).Oracle官方出品:MySql.Data.EntityFrameworkCore (版本:8.0.17) (2).其他第 ...
- Spring Boot连接MySQL长时间不连接后报错`com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.`的解决办法
报错:com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
随机推荐
- SpringBoot学习(七)—— springboot快速整合Redis
目录 Redis缓存 简介 引入redis缓存 代码实战 Redis缓存 @ 简介 redis是一个高性能的key-value数据库 优势 性能强,适合高度的读写操作(读的速度是110000次/s,写 ...
- cas的客户端应用是负载均衡,单点退出怎么办?
之前的项目一直是单节点,这次在生产系统中使用了负载均衡,一个应用部署了两个节点,负载均衡策略未知.这样在使用时发现了这么一个问题:在单点退出后,应用有时候可以退出,但有时还在登陆状态,这就很郁闷了. ...
- Batch Normalization详解
目录 动机 单层视角 多层视角 什么是Batch Normalization Batch Normalization的反向传播 Batch Normalization的预测阶段 Batch Norma ...
- 英语口语考试资料Friendships
Friendships Remember Friendships can be complicated. When you want to get to know someone, it helps ...
- 月下无限连?拒绝无休止switch!
拒绝无休止switch 一.前言 前天碰到个需求,其实很简单,就是Excel导入,Excel模板长下面这样: 按我平常的逻辑是这样做的: 用文件输入流读取Excel,根据Excel的版本生成不同的对象 ...
- 使用modelarts部署bert命名实体识别模型
模型部署介绍 当我们通过深度学习完成模型训练后,有时希望能将模型落地于生产,能开发API接口被终端调用,这就涉及了模型的部署工作.Modelarts支持对tensorflow,mxnet,pytorc ...
- .Net core-邮件发送(同步,异步)底层代码(欢迎留言讨论)
using MailKit.Net.Smtp;using MimeKit;using System;using System.Collections.Generic;using System.IO;u ...
- MySQL必知必会(Select)
SELECT prod_name FROM products; SELECT prod_id, prod_name, prod_price FROM products; SELECT * FROM p ...
- 带你从头到尾捋一遍MySQL索引结构(1)
从一个简单的表开始 create table user( id int primary key, age int, height int, weight int, name varchar(32) ) ...
- luogu P1731 [NOI1999]生日蛋糕 |暴力枚举
题目背景 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层 生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1<=i<=M)层蛋糕是半径为Ri, 高度为Hi的圆柱 ...