Efcore迁移

Add-Migration XX:
1、根据模型的实际结构对比当前快照,从而生成新迁移文件的Up和Down方法
2、根据模型的实际结构修改快照和新迁移文件
-----------------
Remove-Migration
一、我们定义:
1、最后一次的迁移文件,称为:A
2、倒数第二次的迁移文件,称为:B

二、判断:
1、快照和A是不同的:将快照恢复成A,结束
2、快照和A是相同的:删除A,将快照恢复成B,结束
-----------------
Update-Database
1、数据库__EFMigrationsHistory中MigrationId字段和迁移文件做对比
2、更新所有新于MigrationId字段的迁移
3、更新后的迁移不可Remove
4、如果要Remove已经更新的数据库操作,可以使用Update-Database XX指定恢复到哪个历史版本(请注意数据安全)

特殊情况:
一、如果不小心删除快照文件
1、先从他处复制一个空快照文件到项目中
2、执行Remove-Migration,可恢复快照文件到上次迁移的状态
(如有过模型修改,可再执行以下)
3、执行Add-Migration XX,生成新的迁移文件
4、Update-Database,执行更新

二、如果不小心手动删除迁移文件

第一种:

1、手动去数据库里修改对应结构
2、删除所有迁移和快照后,从此刻重新开始依赖迁移功能

第二种:

1、把模型的状态恢复到和数据库同步

2、删除所有的迁移文件和快照

3、执行Add-Migration XX,重新生成快照和迁移文件

4、手动删除XX文件

5、修改模型为最新版本

6、再一次执行Add-Migration XX,并Update-Database

所以,迁移文件和快照特别重要,在未更新本地开发数据和最终数据前,千万不要手动删除!
要清理迁移文件前,请三思三思再三思!

Efcore迁移的更多相关文章

  1. Mego开发文档 - 从EF6/EFCore迁移到Mego

    从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您 ...

  2. vs2017 EFCore 迁移数据库命令

    项目结构: 首先引用 Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.Design 增加类DesignTimeDbC ...

  3. EFCore:关于DDD中值对象(Owns)无法更新数值

    最近使用DDD+EFCore时,使用EFCore提供的OwnsOne或者OwnsMany关联值对象保存数据,没想到遇到一个很奇怪的问题:值对象中的值竟然无法被EFCore保存!也没有抛出任何异常!我瞬 ...

  4. Entity Framework Core 2.0 入门简介

    不多说废话了, 直接切入正题. EF Core支持情况 EF Core的数据库Providers: 此外还即将支持CosmosDB和 Oracle. EFCore 2.0新的东西: 查询: EF.Fu ...

  5. Entity Framework Core 2.0 入门

    该文章比较基础, 不多说废话了, 直接切入正题. 该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Provide ...

  6. EFCore数据库迁移命令整理

    前言  因为现在用.net core 开发新项目,过程中需要经常涉及到数据命令的迁移,今天分别整EFCore 的两种迁移数据库的方式 1 程序包管理器控制台 , Package Manager Con ...

  7. EasySharding.EFCore 如何设计使用一套代码完成的EFCore Migration 构建Saas系统多租户不同业务需求且满足租户自定义分库分表、数据迁移能力?

    下面用一篇文章来完成这些事情 多租户系统的设计单纯的来说业务,一套Saas多租户的系统,面临很多业务复杂性,不同的租户存在不同的业务需求,大部分相同的表结构,那么如何使用EFCore来完成这样的设计呢 ...

  8. .Net下极限生产力之efcore分表分库全自动化迁移CodeFirst

    .Net下极限生产力之分表分库全自动化Migrations Code-First ## 介绍 本文ShardinfCore版本x.6.x.x+ 本期主角: - [`ShardingCore`](htt ...

  9. EFCore高级Saas系统下一个DbContext如何支持多数据库迁移

    EFCore高级玩法单DbContext支持多数据库迁移 前言 随着系统的不断开发和迭代默认的efcore功能十分强大,但是随着Saas系统的引进efcore基于表字段的多租户模式已经非常完美了,但是 ...

随机推荐

  1. Hadoop集群分布搭建

    一.准备工作 1.最少三台虚拟机或者实体机(官网上是默认是3台),我这边是3台 s1: 10.211.55.18 s2: 10.211.55.19 s3: 10.211.55.20 2.安装JDK 3 ...

  2. sql server 变量和select 赋值的联合使用demo

    ) ) select @cltcode=cltcode,@brand=brand from prosamplehd CREATE table #t ( cltcode ), brand ) ) INS ...

  3. 四十七.iptables防火墙 filter表控制 扩展匹配 nat表典型应用

    1.iptables基本管理 关闭firewalld,开启iptables服务 查看防火墙规则 追加.插入防火墙规则 删除.清空防火墙规则   1.1 关闭firewalld,启动iptables服务 ...

  4. link cut tree 洞穴勘测

    /*[bzoj2049][Sdoi2008]Cave 洞穴勘测 2014年7月30日1,06923Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区 . ...

  5. 常见的时间字符串与timestamp之间的转换 时间戳

    这里说的字符串不是一般意义上的字符串,是指在读取日期类型的数据时,如果还没有及时解析字符串,它就还不是日期类型,那么此时的字符串该怎么与时间戳之间进行转换呢? ① 时间字符串转化成时间戳 将时间字符串 ...

  6. 数据结构实验之查找一:二叉排序树 (SDUT 3373)

    二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),也称二叉搜索树. #include <stdio.h> #include <s ...

  7. CF1174B Ehab Is an Odd Person(排序+结论)

    做法 一个显然的结论就是如果至少有一个奇数和一个偶数,那么是可以随意调整的,也就是升序排序 否则不可以进行任何操作 Code #include<bits/stdc++.h> using n ...

  8. Arts打卡第6周

    Algorithm.主要是为了编程训练和学习. 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard). 进行编程训练,如果不训练你看再多的算法书,你依然不 ...

  9. Qt实现原生Flow实现不了的Item错误排列效果,类似淘宝商品展示

    main.qml import QtQuick 2.12 import QtQuick.Window 2.12 import QtQml.Models 2.12 Window { visible: t ...

  10. Fences_3.08破解安装

    Fences_3.08破解安装 一.总结 一句话总结: 找破解软件去吾爱破解论坛,非常节约时间 二.Fences_3.08破解安装(亲测有效) 来源:吾爱破解论坛 百度网盘下载地址:链接:https: ...