.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控制台程序中使用原生依赖注入
-
.net(C#数据库访问) Mysql,Sql server,Sqlite,Access四种数据库的连接方式
-
.NET Core 1.0创建Self-Contained控制台应用
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九)
-
Asp.Net Core2.2 源码阅读系列——控制台日志源码解析
-
.NET Core使用命令行参数库构建控制台应用程序
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之四(三十)
-
.Net Core 3.0 WebAPI && MySQL 8.0搭建详情
-
bp(net core)+easyui+efcore实现仓储管理系统——入库管理之三存储过程(三十九)
-
asp.net core通过控制台启动,设置端口与运行环境