在用惯了Asp.Net Core提供的基架后,反过来想想,貌似忘记了控制台如何去链接数据库了,所以,写一篇文章来借此巩固下并之后再来回顾时,加快步骤。java
一、新建一个.Net Core控制台,而后安装Nuget包git
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Design
Pomelo.EntityFrameworkCore.MySql
Microsoft.Extensions.Configuration.Json
二、添加一个文件夹Models,并增长一个实体类Company,增长该实体类一系列属性sql
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; } } }
三、再增长一个配置文件appsettings.json,按照数据库具体配置去弄,好比接口,用户名密码等,而且本次想用的数据库名。需右键设置该文件的输出方式为始终复制。数据库
{ "ConnectionStrings": { "Default": "Server=xxx;Database=fastconnectdb;Port=10143;charset=utf8;uid=tester;pwd=xxx@yy;" } }
四、增长DbContext,并继承DbContext,该父类在EFCore中,将以前创建的类加入到该DbContext中,配置这个数据库上下文须要的链接字符串,经过配置类去读取第二步骤中的配置项文件,在OnConfiguring中使用UseMysql,该方法在Pomelo的dll中并读取其中的默认链接字符串节点。json
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")); } } }
五、在程序包管理器控制台中选择该项目,必需要选择DbContext所在项目,本次DbContext所在项目为控制台本部。app
并键入以下两行,如无错误,则数据库已经生成,能够查看项目文件夹中,将会多出一个文件夹和若干文件,这是记录迁移信息的。ide
add-migration InitDataBase
update-database
查看数据库中,已经生成了两张表,第一张是由EFCore维护的迁移记录表,第二张是咱们所创建的实体表ui
六、在Program.cs文件中加入一点对数据库的操做,经过using来管理数据库的链接,这种方式较为便捷,固然也可使用其它方式来管理。spa
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(); } } }
七、设置当前项目为启动项目,启动查看运行效果,数据加入到数据库中,并从数据库中再次读取出来:3d
八、最终控制台项目结构
仓库地址:https://gitee.com/530521314/Partner.TreasureChest.git
2019-12-06,望技术有成后能回来看见本身的脚步