欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.Net Core控制台&EFCore连接Mysql

程序员文章站 2022-06-07 12:29:01
在用惯了Asp.Net Core提供的基架后,反过来想一想,貌似忘记了控制台如何去连接数据库了,因此,写一篇文章来借此巩固下并以后再来回顾时,加快步骤。 1、新建一个.Net Core控制台,然后安装Nuget包 2、添加一个文件夹Models,并增加一个实体类Company,增加该实体类一系列属性 ......

  在用惯了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所在项目为控制台本部。

.Net Core控制台&EFCore连接Mysql

并键入如下两行,如无错误,则数据库已经生成,可以查看项目文件夹中,将会多出一个文件夹和若干文件,这是记录迁移信息的。

add-migration initdatabase
update-database

.Net Core控制台&EFCore连接Mysql

 查看数据库中,已经生成了两张表,第一张是由efcore维护的迁移记录表,第二张是我们所建立的实体表

.Net Core控制台&EFCore连接Mysql

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、设置当前项目为启动项目,启动查看运行效果,数据加入到数据库中,并从数据库中再次读取出来:

.Net Core控制台&EFCore连接Mysql

 8、最终控制台项目结构

.Net Core控制台&EFCore连接Mysql

 

 

   仓库地址:https://gitee.com/530521314/partner.treasurechest.git

2019-12-06,望技术有成后能回来看见自己的脚步