efcore迁移

yeagen yeagen     2023-05-06     745

关键词:

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数据迁移

PackageReference是nuget包 DotNetCliToolReference 是dotnet 命令行工具 EFCore用到<DotNetCliToolReference Include=“Microsoft.EntityFrameworkCore.Tools.DotNet” Version=“1.0.0”  查看详情

efcore迁移命令移除外键(代码片段)

 继承MigrationsModelDiffer,重载GetDifferences并移除ForeignKeys[System.Diagnostics.CodeAnalysis.SuppressMessage("Usage","EF1001:InternalEFCoreAPIusage.",Justification="<挂起>")]publicclassMigrationsM 查看详情

efcore迁移

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

efcore数据库迁移(migration)

工具与环境介绍1.开发环境为vs20152.mysqlEFCore支持采用 Pomelo.EntityFrameworkCore.MySql  源代码地址(https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql)场景设计两张表用户表(user)和发帖表(user)一个用户对应多个用户... 查看详情

efcore小技巧:迁移已经应用到数据库,如何进行迁移回退操作?(代码片段)

场景描述:项目中存在两个迁移 Teacher 和 TeachingPlan ,TeachingPlan 在 Teacher 之后创建,并且已经执行 dotnetefdatabaseupdate 将新迁移应用到数据库。此时,因为实体修改,我们希望删除 TeachingPlan 迁移然后创... 查看详情

.NET 6 使用 EF CORE 进行迁移

】.NET6使用EFCORE进行迁移【英文标题】:.NET6usesEFCOREtomigrate【发布时间】:2021-12-2911:18:35【问题描述】:我已将.NET版本升级到最新的6.0,但无法使用EFCore进行迁移。版本的变化让我感觉很陌生,资料也比较少。您拥有的任何信息... 查看详情

efcore高级saas系统下单dbcontext如何支持不同数据库的迁移

前言随着系统的不断开发和迭代默认的efcore功能十分强大,但是随着Saas系统的引进efcore基于表字段的多租户模式已经非常完美了,但是基于数据库的多租户也是可以用的,但是也存在缺点,缺点就是没有办法支持... 查看详情

.net下极限生产力之efcore分表分库全自动化迁移codefirst(代码片段)

...了如何兼容WTM框架后也有不少小伙伴来问我如何兼容如何迁移等问题,经过这么多框架的兼容我自己也认识到了一些问题,譬如在ShardingCore初始化前使用(毕竟efcore)的初始化是在依赖注入的时候不需要手动调用初始化&# 查看详情

efcore迁移过程遇到efcoretoolsversion版本不相符的解决方案(代码片段)

如果你使用命令:PM>add-migrationInital提示如下信息时:TheEFCoretoolsversion‘2.1.1-rtm-30846‘isolderthanthatoftheruntime‘2.1.4-rtm-31024‘解决方法大致一下几种:第一最近在跟着官方的文档学习.NETCore。在写“创建Razor页面Web应用”Demo... 查看详情

.net下极限生产力之efcore分表分库全自动化迁移codefirst

.Net下极限生产力之分表分库全自动化MigrationsCode-First##介绍本文ShardinfCore版本x.6.x.x+本期主角:-[`ShardingCore`](https://github.com/dotnetcore/sharding-core)一款ef-cor 查看详情

EF Core 5.0 - 更改“定义查询”映射实体时是不是需要生成迁移?

】EFCore5.0-更改“定义查询”映射实体时是不是需要生成迁移?【英文标题】:EFCore5.0-Doyouneedtogenerateamigrationwhenchanginga"DefiningQuery"-mappedentity?EFCore5.0-更改“定义查询”映射实体时是否需要生成迁移?【发布时间】:2021-06-0... 查看详情

efcore从tph迁移到tpt(代码片段)

EFCore从TPH迁移到TPT Intro#EFCore支持多种方式处理具有继承关系的表,现在支持TPH、TPC(EFCore7)、TPT,具体的实现方式可以参考官方文档和这篇文章。大致总结一下不同的方式的区别:TPH:所有的类型都放在一张表中,使用discr... 查看详情

从 EF Core 5 迁移到 EF Core 6 时出错

】从EFCore5迁移到EFCore6时出错【英文标题】:ErroronmigratingfromEFCore5toEFCore6【发布时间】:2022-01-1507:19:18【问题描述】:从EFCore5迁移到EFCore6后,我的数据库模型出现问题。在创建上下文时出现错误:字典中不存在给定的键。示例... 查看详情

在应用所有 EF Core 迁移后运行代码

】在应用所有EFCore迁移后运行代码【英文标题】:RuncodeafterallEFCoremigrationsareapplied【发布时间】:2022-01-1515:06:43【问题描述】:EFCore5有各种events,但它们与DbContext相关。没有与迁移相关的事件(Migration)。我想在应用所有迁移后运... 查看详情

efcore之项目升级遇到迁移小问题

...我一脸懵逼。首先这个项目启动后会使用EFCore进行数据库迁移,并且初始化后会插入一些基础数据,然后在插入数据的时候,这个表的某个列应该是text类型的,可是迁移后数据库中该列是int类型。这个时候我肯定... 查看详情

EF Core 迁移:在存在时删除唯一约束

】EFCore迁移:在存在时删除唯一约束【英文标题】:EFCoreMigrations:DropUniqueConstraintwhenitexists【发布时间】:2022-01-2320:16:41【问题描述】:上下文我在SQLServer中有一个表,它在表的四列上有一个唯一索引。当使用EFCore迁移中的migratio... 查看详情

带有 WPF 核心的实体框架核心 - 无法添加迁移

】带有WPF核心的实体框架核心-无法添加迁移【英文标题】:EntityFrameworkCorewithWPFCore-Cannotaddmigrations【发布时间】:2020-05-3005:59:30【问题描述】:最近我将我的WPF应用程序(.NET4.7)迁移到了.NetCore3.1。除了我无法生成/添加EFCore迁移之... 查看详情

EF Core 5 在迁移中创建了两次表

】EFCore5在迁移中创建了两次表【英文标题】:EFCore5createstablestwiceinmigrations【发布时间】:2021-04-2204:43:32【问题描述】:我已经创建了一个项目和一个迁移,但似乎迁移在添加新迁移时并不关心以前的迁移,也就是说,迁移文件... 查看详情