【问题标题】:Entity Framework 6 code-first migrations generationEntity Framework 6 代码优先迁移生成
【发布时间】:2025-12-22 18:45:11
【问题描述】:

我希望能够有选择地运行由 Entity Framework 6 迁移生成的 SQL 命令,因此我可以更改或过滤它们。所以理想情况下我会有一些这样的代码:

var migration = EF.GetMigrationOperations();
var filteredOperations = migration.Where(...);
SqlContext.ExecuteCommands(filteredOperations);

这只是描述我的愿望的伪代码。那么有没有办法做到这一点?我还没有找到一个。用例用于自动数据库迁移,例如过滤 DROP 语句,直到上传新版本的应用程序。

【问题讨论】:

  • 恐怕没有直接的方法可以实现这一点。如果我错了,请有人纠正我!

标签: c# .net entity-framework entity-framework-6 migration


【解决方案1】:

我终于部分解决了。为了在代码中至少获得 .sql 脚本,我使用了 https://romiller.com/2012/02/09/running-scripting-migrations-from-code/ 和基本上下文工厂。按照最初的要求在代码中获得唯一操作的另一种方法是对 EntityFramework 的HistoryRepository 类使用残酷的反射。

【讨论】: