MsSql与MySql实现DB First和Code First

1. NuGet安装依赖包

1
2
3
4
5
6
7
8
9
10
11
MsSql

运行:Install-Package Microsoft.EntityFrameworkCore.SqlServer

MySql

运行:

柚子:Install-Package Pomelo.EntityFrameworkCore.MySql
或者
官方:Install-Package MySql.Data.EntityFrameworkCore -Version 8.0.11

2. DB First

1
2
3
4
5
6
7
MySql

运行:Scaffold-DbContext -Connection "Server=localhost;User Id=root;Password=123456;Database=vanfj" -Provider "Pomelo.EntityFrameworkCore.MySql" -OutputDir "Models"

MsSql

运行:Scaffold-DbContext -Connection "Server=localhost;User Id=root;Password=123456;Database=vanfj" -Provider "Microsoft.EntityFrameworkCore.SqlServer" -OutputDir "Models"

使用说明:将Connection中的连接字符串替换为自己的数据库连接,将OutputDir中的Models替换为自己要生成的文件目录名

3. Code First

创建DBContext类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
{
}

public DbSet<Blog> Blogs { get; set; }
...

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//配置mariadb连接字符串
//optionsBuilder.UseMySql("Server=localhost;Port=3306;Database=BloggingDB; User=root;Password=;");
}
}
Startup注入上下文
1
services.AddDbContext<AppDbContext>(o => o.UseMySql(Configuration.GetConnectionString("connStr")));
appsettings.json添加连接字符串
1
2
3
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;User Id=root;Password=123456;Database=vanfj"
},
为迁移搭建基架
1
Add-Migration InitialCreate
将新迁移应用到数据库
1
Update-Database

EF Core将迁移更新到生产环境可以使用Script-Migration命令生成sql脚本,然后到生产数据库执行

语法

1
Script-Migration [-From] <String> [-To] <String> [-Idempotent] [-Output <String>] [-Context <String>] [-Project <String>] [-StartupProject <String>] [<CommonParameters>]

示例:

1
Script-Migration -From 20171023035934_v113 -To 20171024035934_V114

上面的命令会生成113版本迁移到114版本的SQL语句

坚持技术分享,您的支持将鼓励我继续创作!