.Net Core控制台amp;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控制台amp;EFCore连接Mysql相关推荐
- .net core WebAPI 初探及连接MySQL
.net core WebAPI 初探及连接MySQL 1. 前言 笔者最近跟着微软官方文档学习.net core WebAPI,但发现其对 WebAPI 连接数据库.读取数据库方面讲得不够细致明了. ...
- t4模板 mysql_.net core 用T4模板连接MySql生成实体类
.net core 用T4模板连接MySql生成实体类标题 4,把MySql.Data.dll放在项目根目录,也可以自行更改. 在之前参考那个博友的文章,他的是连接SQL server的. 下面是参考 ...
- ef mysql dbfirst_.NetCore教程之 EFCore连接Mysql DBFirst模式
一:创建ef的类库,同时将此项目设置为启动项(为scaffold-dbcontext -tables指令使用),同时安装2个包 ①microsoft.entityframeworkcore.tools ...
- ASP .NET Core使用connection string连接MySQL/MariaDB,并设置UTF-8编码
具体的使用文章参考我的这篇博客:ASP .NET Core Web 系列教程四:使用数据库进行交互(MySQL/MariaDB 版) 我这里介绍一下设置UTF-8的编码的Connection Stri ...
- 记一次EF Core连接MySql、Oracle
点击上方"Dotnet9"添加关注哦 上上个月写的一篇文章,今天有同事问我使用EF Core连接MySql和Oracel的问题,我把这篇文章直接甩给了他. 下面是正文: 这几天研究 ...
- 0配置EF连接MySql数据库_第八节:EF Core连接MySql数据库
一. 前提 1.安装EF Core连接MySQL的驱动,这里有两类: (1).Oracle官方出品:MySql.Data.EntityFrameworkCore (版本:8.0.17) (2).其他第 ...
- Asp.net Core 6.0 使用EF DB First 连接mysql
asp.net core 6.0 使用EF Core 6.0 连接mysql,实现db first 使用的开发环境是vs 2022 首先建立项目,web api 项目 为VS2022安装扩展 此时在项 ...
- ASP.NET Core Web项目连接MySQL数据库
作者在新建了一个ASP.NET Core Web项目的基础上,想连接本地的Mysql数据库,参考了很多博客,各种各样的说法都有,多少让人有感凌乱!自己最后捣鼓成功了!所以写一篇博客,以便后人查阅! 操 ...
- Django连接MySQL数据库错误:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module
Django项目里已经添加了PyMySQL,数据库的配置也修改好了,但是连接MySQL,却显示找不到MySQL,如图: 连接数据库的设置如下: DATABASES = {'default': {'EN ...
最新文章
- shell脚本自动记录登陆后 的IP地址和历史记录
- 使用CSS对页面加载的淡入效果
- python语法手册-python语法手册
- 移动端https抓包那些事--进阶篇
- 解决Too many open files问题
- MyEclipse 启动之 java.lang.RuntimeException: No application id has been
- 首次击败美国!2019《财富》世界500强公布:129家中国公司上榜
- ASP.NET+MVC自学材料
- mac php5.6 gd 扩展,mac 编译安装php5.6.40
- clr错误 8004005程序将立即终止_微软公开发布更多Surface驱动程序 固件支持终止日期...
- Jmeter 2.6下载安装
- HTML元素定义 ID,Class,Style的优先级
- 使用 ExMerge.exe 工具从邮箱中删除感染病毒的邮件
- 重写需要注意哪些方面?
- 局域网电脑屏幕桌面监控怎么样
- pytorch(8)-- resnet101 迁移学习记录
- LabVIEW编程LabVIEW开发 施耐德
- 如何将word文档生成二维码
- C#实现qq邮箱发送邮件(验证码)
- POI锁定单元格的问题