EF mysql 数据迁移_Asp.Net Core EFCore Migrations 数据迁移
通过Migration生成数据库的命令
在vs中的“程序包管理器控制台”中输入如下两个命令,也可以在项目所在文件夹中打开命令行工具进行操作
命令一共有5种,每个有两种写法:
dotnet ef migrations add initialCreate ||Add-Migrantion (执行此命令项目生成一个目录(Migrations))
dotnet ef database update ||Update-Database (把当前的Migrations更新到数据库中)
dotnet ef migrations remove ||Remove-Migration (删除一个最新的Migrations,降级,根据数据库表结构删除migrations文件夹下面多余的文件)
dotnet ef database update LastGoodMigration || Update-Database LastGoodMigration(指定一个Migrations更新 LastGoodMigration 指定的migration名称)
dotnet ef migrations script || Script-Migration (将更新内容生成sql脚本语句)
asp.net core 中实现DBContext的初始化,先创建一个ApplicationDBContextSeed,作为初始化基础数据的类,
需要引用 using Microsoft.Extensions.DependencyInjection 和 using Microsoft.Extensions.Logging ,只有在初始化创建数据库的时候将默认的admin账号写入表中
public class ApplicationDBContextSeed
{
private UserManager _userManager;
public async Task SeedAsync(ApplicationDBContext contest,IServiceProvider serviceProvider)
{
if (!contest.Users.Any())
{
_userManager = serviceProvider.GetRequiredService>();
var defultUser = new ApplicationUser
{
UserName = "admin",
Email = "leo@qq.com",
NormalizedUserName = "admin"
};
var resilt= await _userManager.CreateAsync(defultUser, "123456");
if(!resilt.Succeeded)
{
throw new Exception("初始化用户信息失败!");
}
}
}
}
创建WebHostMirgationExtensions
public static class WebHostMirgationExtensions
{
public static IWebHost MigrateDbContext(this IWebHost host,Action sedder) where TContext:DbContext
{
using (var scope =host.Services.CreateScope())
{
var services = scope.ServiceProvider;
var logger = services.GetRequiredService>();
var context = services.GetService();
try
{
context.Database.Migrate();//每次执行都会自动去更新数据库
sedder(context, services);
logger.LogInformation($"执行DBContext:{typeof(TContext).Name} seed方法成功");
}
catch (Exception ex)
{
logger.LogError(ex, $"执行DBContext:{typeof(TContext).Name} seed方法失败");
}
}
return host;
}
}
修改Program
public static void Main(string[] args)
{
BuildWebHost(args)
.MigrateDbContext((context, server) => {
new ApplicationDBContextSeed().SeedAsync(context, server).Wait(); }
).Run();
}
EF mysql 数据迁移_Asp.Net Core EFCore Migrations 数据迁移相关推荐
- EF Core 批量写入数据使用整理_EF Core批量插入数据(一)
一.EF Core 批量添加数据 问题详解 AddRange() 问题整理: 1.对于批量写入数据,每次几万条情况 使用 Add() 方法不合理 2.使用AddRange() 每次批量写入数据也要有个 ...
- ef mysql跟踪sql语句_EF Core 日志跟踪sql语句
EF Core 日志跟踪sql语句 1.新增自定义ILoggerProvider实现类 public class EFLoggerProvider : ILoggerProvider { public ...
- asp 取数据 计算_ASP.NET Core 简介
.NET Core 是 .NET Framework 的新一代版本,是微软开发的第一个具有跨平台 ( Windows.Mac OSX .Linux ) 能力的应用程序开发框 http://ASP.NE ...
- mysql多租户schema复制,Asp.net core下利用EF core实现从数据实现多租户(3): 按Schema分离 附加:EF Migration 操作...
前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模 ...
- ef mysql 数据模型,EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...
官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...
- ef mysql dbfirst,.NetCore教程之 EFCore連接Mysql DBFirst模式
一:創建EF的類庫,同時將此項目設置為啟動項(為Scaffold-DbContext -tables指令使用),同時安裝2個包 ①Microsoft.EntityFrameworkCore.Tools ...
- ssh项目同时使用mysql跟sqlserver数据库_MSSQL_如何把sqlserver数据迁移到mysql数据库及需要注意事项,在项目开发中,有时由于项目 - phpStudy...
如何把sqlserver数据迁移到mysql数据库及需要注意事项 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Serve ...
- EF Core 小技巧:迁移已经应用到数据库,如何进行迁移回退操作?
场景描述:项目中存在两个迁移 Teacher 和 TeachingPlan ,TeachingPlan 在 Teacher 之后创建,并且已经执行 dotnet ef database update ...
- ef mysql dbfirst_.NetCore教程之 EFCore连接Mysql DBFirst模式
一:创建ef的类库,同时将此项目设置为启动项(为scaffold-dbcontext -tables指令使用),同时安装2个包 ①microsoft.entityframeworkcore.tools ...
最新文章
- IDBA-UD:组装非均匀覆盖度的宏基因组和单细胞数据
- 50个国内外最棒的C/C++源码站点分享
- Jmeter加Fiddler对web项目测试
- TTL传输中过期的解决办法
- sqlite 的几点见解
- POJ 1002 487-3279
- OpenShift 4 Tekton - Tekton实现包含Gogs+SonaQube+Nexus+Report+WebHook的Pipeline
- 一个html文件创造多个页面,使页眉和页脚文件包含在多个html页面中。
- 洛谷 P1426 小鱼会有危险吗(C语言)
- linux dropbox自动同步,CentOS 6.x使用dropbox并定时同步数据
- 字节跳动 5 万人远程办公的背后,飞书的演进之路
- Linux date命令-d、--date选项接受的时间描述字符串的格式详解
- python 提取出字符串括号中的内容,正则表达式
- C++中BitBlt的使用方法详解
- 信息系统项目管理师(2022年)—— 重点内容:项目合同管理(13)
- 【Pyecharts】Python数据可视化:英雄联盟2020赛季数据全方位解读~
- ATI六维力传感器完整使用教程(婴儿式教学!!!!)
- vue中identify(生成图片验证码)插件的配置和使用
- NGS各种组学建库原理(图解)
- MYSQL学习笔记(自用)第七章