熟悉了A Core提供的基础设施后,反过来想,控制台似乎忘记了如何连接到数据库,所以可以写一篇文章来巩固,以后再回顾的时候加快步骤。(大卫亚设,Northern Exposure)。
1、新建一个.Net Core控制台,然后安装Nuget包
Micro
Micro.Design
Pomelo.En
Micro
2、添加一个文件夹Models,并增加一个实体类Company,增加该实体类一系列属性
namespace Fa
{
/// <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、再增加一个配置文件a,按照数据库具体配置去弄,比如接口,用户名密码等,并且本次想用的数据库名。需右键设置该文件的输出方式为始终复制。
{
"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 Fa;
using Micro;
using Micro;
using Sy;
namespace Fa
{
public class FastConnectDbContext : DbContext
{
public DbSet<Company> Companys { get; set; }
private IConfiguration configuration;
public FastConnectDbContext()
{
configuration = new ConfigurationBuilder().SetBasePa()).AddJsonFile("a").Build();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
o("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())
{
dbCon(new Company
{
Name = "星城科技",
Address = "湖南长沙雨花区"
});
dbCon();
Con("All Company in database:");
foreach (var company in dbCon)
{
Con("{0}-{1}", com, com);
}
Con();
}
}
}
7、设置当前项目为启动项目,启动查看运行效果,数据加入到数据库中,并从数据库中再次读取出来:
8、最终控制台项目结构
1.《.net如何连接数据库?终于找到答案了在.net core中使用EFCore连接Mysql并创建数据表》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《.net如何连接数据库?终于找到答案了在.net core中使用EFCore连接Mysql并创建数据表》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2205734.html