Entity framework core 实体框架核心-获取挂起迁移的脚本

Entity framework core 实体框架核心-获取挂起迁移的脚本,entity-framework-core,entity-framework-migrations,Entity Framework Core,Entity Framework Migrations,是否有方法确定运行时使用的迁移脚本 context.Database.Migrate(); 在EF6中,我可以使用 System.Data.Entity.Migrations.Infrastructure.MigratorScriptingDecorator 方法呢 migrator.ScriptUpdate(null, null) 生成脚本,以便在出现问题时转储它们以进行故障排除。ef core有类似的方法吗?这里有一种方法可以转储Entity Framework core SQL脚本

是否有方法确定运行时使用的迁移脚本

context.Database.Migrate();
在EF6中,我可以使用

System.Data.Entity.Migrations.Infrastructure.MigratorScriptingDecorator 
方法呢

migrator.ScriptUpdate(null, null)

生成脚本,以便在出现问题时转储它们以进行故障排除。ef core有类似的方法吗?

这里有一种方法可以转储Entity Framework core SQL脚本以进行故障排除,或者将它们添加到源代码管理中,以便在CI/CD管道中使用类似的工具

见:

公共静态字典GetAllMigrationSql(DbContext db) { var migrationSql=新字典(); var migrations=db.Database.GetMigrations(); var migrator=db.GetService(); 字符串frommigation=null; foreach(迁移中的变量迁移) { var sql=migrator.GenerateScript(frommigation,toMigration); 添加(toMigration,sql); 从迁移=迁移; } 返回迁移SQL; } 使代码正常工作的使用语句有:

使用系统//对于控制台输出
使用System.Collections.Generic//对于字典类型
使用Microsoft.EntityFrameworkCore;
使用Microsoft.EntityFrameworkCore.Infrastructure;
使用Microsoft.EntityFrameworkCore.Migrations;
我必须演示如何使用代码。SQL将生成并记录到控制台。所使用的示例生成以下SQL:

--20190917222642\u初始创建
如果不存在,则创建表“\u EFMigrationsHistory”(
“MigrationId”文本非空约束“PK___;EFMigrationHistory”主键,
“ProductVersion”文本不为空
);
创建表“Blogs”(
“BlogId”整数非空约束“PK_Blogs”主键自动递增,
“Url”文本为空
);
创建表“Posts”(
“PostId”整数非空约束“PK_Posts”主键自动递增,
“标题”文本为空,
“内容”文本为空,
“BlogId”整数不为空,
约束“FK_Posts_Blogs_BlogId”外键(“BlogId”)在删除级联上引用“Blogs”(“BlogId”)
);
在“Posts”(“BlogId”)上创建索引“IX_Posts_BlogId”;
插入到“\uuu EFMigrationsHistory”(“MigrationId”,“ProductVersion”)
值('20190917222642_InitialCreate','3.1.8');
感谢Jiříčinčura