Я только что установил новый пакет 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)
Я знаю, что миграции все еще в альфа-версии, но мне было интересно, смог ли кто-нибудь запустить миграцию с помощью DbMigrator?
Спасибо.