2014-03-31 105 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(); 
相關問題