2014-03-31 102 views
0

是否可以通过编程方式枚举特定上下文/程序集的可用代码第一次迁移(EF 6+)?枚举可用的实体框架代码第一次迁移

具体来说,我想查看一个特定的程序集/上下文,并列出可用的迁移以及按它们的应用顺序对它们进行排序。

它似乎是System.Data.Entity.Migrations.Infrastructure.MigrationAssembly是我想要的,但它是内部的。没有使用反射来获得它,有没有更好的方法?

编辑

的示例应用程序,着眼于两个不同的EF组件,给你一个他们迁移的 “差异”,请参阅:EF Code First Migrations to Deploy Older Version

回答

2
var config = new Configuration(); 
var migrator = new DbMigrator(config); 

var all = migrator.GetLocalMigrations().ToList() 
var applied = migrator.GetDatabaseMigrations().ToList(); 
var pending = migrator.GetPendingMigrations().ToList(); 
+0

啊,所以这会返回迁移的名称 - 包括时间戳,这就是我能够订购它们的原因佩尔利。谢谢! – RMD

1

使用DbMigrator

var config = new DbMigrationsConfiguration(); 
config.MigrationsAssembly = YourAssembly; 
config.TargetDatabase = YourDb; 
var migrator = new DbMigrator(config); 
var local = migrator.GetLocalMigrations(); //all migrations 
var pending = migrator.GetPendingMigrations(); 
var applied = migrator.GetDatabaseMigrations(); 
相关问题