zoukankan      html  css  js  c++  java
  • .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,望技术有成后能回来看见自己的脚步
  • 相关阅读:
    Yii中缓存依赖的处理
    简单实现Tab切换(带框架)
    Server Application Unavailable出现的原因及解决方案集锦
    Microsoft.ReportViewer.WebForms, Version=10.0.0.0的报错问题,解决方案
    ASP.NET中树型DropDownList的绑定
    VS2010 使用时选择代码或双击时出错,点击窗口按钮后VS自动重启问题
    js实现文本框限制输入数字和小数点--兼容多个浏览器
    输入的全角字符转换成半角字符--css、js、ASP.NET
    sql把表格拼成字符串,多半使用于GROUP BY
    Sql将逗号分隔的字符串分拆成表格的方法
  • 原文地址:https://www.cnblogs.com/CKExp/p/11997260.html
Copyright © 2011-2022 走看看