回过头来看看,我之前写的有些复杂。推荐大家看下这个 https://www.cnblogs.com/lyps/archive/2018/11/06/9916167.html 博客。

(为什么这么写,我记不太清了。大致步骤相同,不过我推荐的这个比我写的好。愿:在程序的路上多多学习,共同进步!奥利给!!!)

一、在Models 新建两个数据库类

这个是数据库需要生成的类基础

public class User
{
[Key]
public string ID { get; set; }
[MaxLength()]
public string Name { get; set; } public int Age { get; set; } [MaxLength()]
public string Phone { get; set; } public string DepartmentID { get; set; } [ForeignKey("DepartmentID")]
public Department Department { get; set; }
} public class Department
{
[Key]
public string ID { get; set; }
[MaxLength()]
public string Name { get; set; }
}

二、新建文件夹MysqlDbContext,然后新建类MysqlContext (注意文件夹的名字,不要跟类名一样)

然后建立表与数据库关系映射

public class MysqlContext : DbContext
{
public MysqlContext(DbContextOptions<MysqlContext> options) : base(options)
{ }
//建立表与模型的映射关系
public DbSet<User> User { get; set; }
public DbSet<Department> Department { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}

三、添加依赖项

  依赖项右键 》》管理NuGet 包》》浏览

搜索这两个,注意安装的 版本号 ,是core 2.x的 你安装 3.x 会报错

我安装的是2.2.6

Microsoft.EntityFrameworkCore.Tools 
Pomelo.EntityFrameworkCore.MySql

不要在乎那个安装的颜色,第一个安装之前是浅蓝,安装之后就紫色了。

四、添加 Util 文件夹 ,添加AppConfigurtaionServices类

  这个是创建生成的数据库文件的类

public class AppConfigurtaionServices
{
public static IConfiguration Configuration { get; set; }
static AppConfigurtaionServices()
{
//ReloadOnChange = true 当appsettings.json被修改时重新加载
Configuration = new ConfigurationBuilder()
.Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
.Build();
}
}

还有这种写法(我不是太懂这两个有什么区别,知道的大哥可以给我留言,万分感谢)

 public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<MysqlDbContext>
{
public MysqlDbContext CreateDbContext(string[] args)
{
var configBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build(); var builder = new DbContextOptionsBuilder<MysqlDbContext>();
builder.UseMySql(configBuilder.GetConnectionString("DefaultConnection"));
return new MysqlDbContext(builder.Options); }
}

这种写法需要引用(注意版本)

Microsoft.Extensions.Configuration.FileExtensions

Microsoft.Extensions.Configuration.Json

Microsoft.Extensions.Configuration

Pomelo.EntityFrameworkCore.MySql

五、在Startup 的ConfigureServices下添加

services.AddDbContext<MysqlContext>(options =>
options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));

六、在appsettings.json 添加数据库连接

 "ConnectionStrings": {
"DefaultConnection": "Data Source =数据库服务器地址(127.127.127.127);port=3306;Initial Catalog=数据库名;user id=数据库连接名;password=密码;Character Set=utf8;sslmode=none"
},

七、最后一步

执行命令找到程序应用控制台

先输入 Add-Migration init 回车

然后 Update-Database init 回车

最后在数据看一下

最后在补充一下,如果要添加或者修改数据库直接修改Models的类,然后执行Update-Database V1.1(这个v1.1是版本号),就可以了,不要直接改数据库。

多说一句,如果是新建的类库里面放的话,默认执行的是启动项,也就是你的web项目,要把默认的改成你的类库

结束。

目录如下:

C# 之 .net core -- EF code first连接Mysql数据库的更多相关文章

  1. EntityFramework 6.0< Code First > 连接 Mysql数据库(转)

    http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多 ...

  2. EntityFramework 6.0< Code First > 连接 Mysql数据库

    网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多了.找了很久,总算是配置好了,现在分享一下. 一,安装:     1.开发环境: VS2013与EF6 ...

  3. 转载:EntityFramework 6.0< Code First > 连接 Mysql数据库

    转载自:http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转 ...

  4. EF Code First连接现有数据库

    作为一个初入学习.net MVC4 的新手,想写一写今天碰到的问题,做一个总结. 首先我想利用EF Code First来连接我现有数据库,而不是通过EF Code First来自动生成数据库和表. ...

  5. EF Code First 连接MySql

    看了很多文章,尝试了很多次总是进行不下去,整理一下,以便日后查看. 1.创建ASP.NET MVC项目(EFCodeFirst) 1.1.右键点击引用选择管理NuGet程序包下载MySql.Data. ...

  6. .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程

    本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...

  7. asp.net core EF code first

    以连接mysql数据库为例 一 安装组件 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Relational Microsof ...

  8. 使用EF CodeFirst连接MySql数据库

    如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...

  9. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

随机推荐

  1. 关于使用Arduino做开发的理解

    转载自arduino中文社区 https://www.arduino.cn/thread-5414-1-1.html 见到很多人对Arduino的开发方法 .应用场景有误解,特别开个帖子说明下. 误解 ...

  2. stat中的st_dev和st_rdev

    目录 stat中的st_dev和st_rdev title: stat中的st_dev和st_rdev date: 2019/11/27 21:04:25 toc: true --- stat中的st ...

  3. 转换函数conversion function

    类转换分为两个角度 转换自身为其他类型 把其他类型转换为自身 Example: 这里我们可以将b转换为class xxx 的类型(方式2),也可以将me转换为double,然后再讲结果转换为doubl ...

  4. segi日期计算笔记

    计算月末最后一天 /* * 输入年月格式YM(如:201911),输入该月最后一天 */ int monthEndDay(int YM) { int endDay; ; ; == M) { == Y ...

  5. [转帖]Linux日期和时间的那些事儿

    Linux日期和时间的那些事儿 http://embeddedlinux.org.cn/emb-linux/entry-level/201311/09-2672.html 自己还是稚嫩啊.. 除了年龄 ...

  6. 从 .NET 到 JavaScript —— 纯前端报表控件 ActiveReportsJS 焕新登场

    报表工具的发展史,最早可以追溯到微软报表SSRS(SQL Server Reporting Services)时期.最初,报表工具主要应用于报表的定制.呈现和输出.经过几十年的发展,随着各种业务系统功 ...

  7. Python 基础(十六)--随机数模块

    random随机数模块 random.randint(1,10):随机1-10包括10 random.randrange(1,10,2):在1.3.5.7.9中随机,类似切片,不包括10 random ...

  8. 【数据结构】P1996 约瑟夫问题

    [题目链接] https://www.luogu.org/problem/P1996 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数, ...

  9. 怎样监听HTTP请求的成功、失败与进行时

    1. 监听请求成功: xhr.onload 2. 监听请求失败: xhr.onerror 3. 监听请求数据下载中: xhr.onprogress xhr.onload = function() { ...

  10. IOS 点击按钮拨号

    - (IBAction)OnTouch_bHotLine:(id)sender { [[UIApplication sharedApplication] openURL:[NSURL URLWithS ...