我刚刚安装了新的EntityFramework.Migrations包。我按照本教程进行了迁移:http://blogs.msdn.com/b/adonet/archive/2011/09/21/code-first-migrations-alpha-3-no-magic-walkthrough.aspx
使用Powershell窗口,一切正常。
但是我们需要创建一个类来回滚我们的自动化测试的所有迁移。
所以我做了一个看起来像这样的简单类:
public class CustomMigrator
{
public void DropDatabase()
{
new DbMigrator(new Settings()).Update("0");
}
public void RegenerateDatabase()
{
new DbMigrator(new Settings()).Update();
}
}
设置是我的DbMigrationContext实现,如下所示:
public class Settings : DbMigrationContext<MyDb>
{
public Settings()
{
AutomaticMigrationsEnabled = false;
SetCodeGenerator<CSharpMigrationCodeGenerator>();
AddSqlGenerator<SqlConnection, SqlServerMigrationSqlGenerator>();
}
}
当我这样称呼时:
new CustomMigrator().DropDatabase();
我得到一个奇怪的例外:
The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)
我知道迁移仍然是alpha版,但我想知道是否有人能够使用DbMigrator运行迁移?
感谢。
答案 0 :(得分:1)
我刚刚发现了我的问题,这是因为我使用的是EntityFrameworkProfiler,最新的EF版本存在一个错误,它打破了分析器。
目前我不需要探查器,所以我只删除了初始化探查器的代码行,现在它可以工作。