entity-framework - 实体框架包迁移,设置起点
问题描述
在多个项目中,我想捆绑所有迁移,因为随着时间的推移,迁移的数量是巨大的。
然后我删除现有的迁移并在一个干净的数据库上创建一个新的迁移Add-Migrations 'Base entities'
,例如。
但是在现有实例上,我想设置可以跳过“基本实体”迁移。
谁能告诉我我该怎么做?
提前致谢!
解决方案
我使用了以下过程:
记下最新的迁移 id,即文件名。例如。
20210719105339_latest
确保依赖迁移的所有数据库都已随
20210719105339_latest
迁移更新。Migrations
从文件夹中删除所有迁移。使用 CLI 创建新的代码优先迁移:core:
dotnet ef migrations add Base_Entities
。框架:Add-Migration -Name Base_Entities
。更新生成的迁移文件名以匹配已删除的最新迁移:
20210719105339_latest.cs
,20210719105339_latest.Designer.cs
更新设计器文件中的迁移 ID。核心:类
Migration
属性:[Migration("20210719105339_latest")]
。框架:属性IMigrationMetadata.Id
:string IMigrationMetadata.Id { get { return "20210719105339_latest"; } }
由于数据库保存了已在__EFMigrationsHistory
( framework:) __MigrationHistory
表中运行的迁移的记录,因此它现在看起来就像您刚刚创建的迁移已经运行一样。
如果您有任何迁移正在创建不是由 EF 迁移生成的对象(例如视图、存储过程、函数、全文目录),则需要小心此过程,因为此设置将丢失,除非您将其复制到新的基地迁移。
推荐阅读
- python - 从 csv 读取数据并将其动态添加到分页 url 时出现 Scrapy key 错误
- python - 我正在尝试使用 python Jupiter Notebook 运行 xgboost,但出现此错误: AttributeError: module 'xgboost' has no attribute 'set_params'
- windows - 如何根据文件属性列出文件夹和子文件夹中的所有文件,特别是具有 ALOM 属性的文件(Windows 10)?
- android - gradle 依赖版本排序不正确
- javascript - 实现 React 设计系统时构建 NodeJS 时出错
- java - 部署到 Wildfly 失败消息:未定义(CORBA.INTERNAL:次要代码:208)
- node.js - Electron - 限制渲染器的 Internet 访问
- php - 在 php 中设置 Adwords 转换脚本
- flutter - Flutter 对象未在函数内部初始化
- reactjs - Redux Thunk:Redux Thunk 未在我的屏幕上显示来自 Jsonplaceholder 的数据