通过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 数据迁移相关推荐

  1. EF Core 批量写入数据使用整理_EF Core批量插入数据(一)

    一.EF Core 批量添加数据 问题详解 AddRange() 问题整理: 1.对于批量写入数据,每次几万条情况 使用 Add() 方法不合理 2.使用AddRange() 每次批量写入数据也要有个 ...

  2. ef mysql跟踪sql语句_EF Core 日志跟踪sql语句

    EF Core 日志跟踪sql语句 1.新增自定义ILoggerProvider实现类 public class EFLoggerProvider : ILoggerProvider { public ...

  3. asp 取数据 计算_ASP.NET Core 简介

    .NET Core 是 .NET Framework 的新一代版本,是微软开发的第一个具有跨平台 ( Windows.Mac OSX .Linux ) 能力的应用程序开发框 http://ASP.NE ...

  4. mysql多租户schema复制,Asp.net core下利用EF core实现从数据实现多租户(3): 按Schema分离 附加:EF Migration 操作...

    前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模 ...

  5. 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中创建新 ...

  6. ef mysql dbfirst,.NetCore教程之 EFCore連接Mysql DBFirst模式

    一:創建EF的類庫,同時將此項目設置為啟動項(為Scaffold-DbContext -tables指令使用),同時安裝2個包 ①Microsoft.EntityFrameworkCore.Tools ...

  7. ssh项目同时使用mysql跟sqlserver数据库_MSSQL_如何把sqlserver数据迁移到mysql数据库及需要注意事项,在项目开发中,有时由于项目 - phpStudy...

    如何把sqlserver数据迁移到mysql数据库及需要注意事项 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Serve ...

  8. EF Core 小技巧:迁移已经应用到数据库,如何进行迁移回退操作?

    场景描述:项目中存在两个迁移 Teacher 和 TeachingPlan ,TeachingPlan 在 Teacher 之后创建,并且已经执行 dotnet ef database update  ...

  9. ef mysql dbfirst_.NetCore教程之 EFCore连接Mysql DBFirst模式

    一:创建ef的类库,同时将此项目设置为启动项(为scaffold-dbcontext -tables指令使用),同时安装2个包 ①microsoft.entityframeworkcore.tools ...

最新文章

  1. IDBA-UD:组装非均匀覆盖度的宏基因组和单细胞数据
  2. 50个国内外最棒的C/C++源码站点分享
  3. Jmeter加Fiddler对web项目测试
  4. TTL传输中过期的解决办法
  5. sqlite 的几点见解
  6. POJ 1002 487-3279
  7. OpenShift 4 Tekton - Tekton实现包含Gogs+SonaQube+Nexus+Report+WebHook的Pipeline
  8. 一个html文件创造多个页面,使页眉和页脚文件包含在多个html页面中。
  9. 洛谷 P1426 小鱼会有危险吗(C语言)
  10. linux dropbox自动同步,CentOS 6.x使用dropbox并定时同步数据
  11. 字节跳动 5 万人远程办公的背后,飞书的演进之路
  12. Linux date命令-d、--date选项接受的时间描述字符串的格式详解
  13. python 提取出字符串括号中的内容,正则表达式
  14. C++中BitBlt的使用方法详解
  15. 信息系统项目管理师(2022年)—— 重点内容:项目合同管理(13)
  16. 【Pyecharts】Python数据可视化:英雄联盟2020赛季数据全方位解读~
  17. ATI六维力传感器完整使用教程(婴儿式教学!!!!)
  18. vue中identify(生成图片验证码)插件的配置和使用
  19. NGS各种组学建库原理(图解)
  20. MYSQL学习笔记(自用)第七章

热门文章

  1. 谷歌秋季新品发布会即将召开 Pixel 4系列将正式亮相
  2. ANC双重降噪+三种沉浸立体音效 OPPO无线降噪耳机正式发布
  3. LG G8X官方图流出:LG双屏手机也意外曝光 或IFA发布
  4. 蔚来回应庄莉离职:不会因少数人员的正常流动受到影响
  5. 苹果官网再度开售iPhone SE:这是在为新品清库存了?
  6. 二维数组和指针(包含交换二维数组行列)
  7. io口模拟串口 1602显示数据位内容[转]
  8. 视频转音频时,安卓和iOS播放的时长翻倍 --- 好一个坑
  9. java学习第一课----java中8种基本类型
  10. 学习爬虫过程中遇到的问题总结