Entity Framework создает пустую миграцию, но настаивает на том, что моя модель отличается

Сегодня грустный день. Первым делом сегодня я увидел исключение EF, говорящее, что "Модель, поддерживающая контекст «DomainContext», изменилась с момента создания базы данных.". Это близко к полуночи, и я все еще вижу эту ошибку. Это конец моей карьеры - (

Я почти уверен, что в модели ничего не изменилось, но ошибка появилась. Я попытался создать новую миграцию, она вышла пустой:

public void Up()
{
}
public void Down()
{
}

Применение этой миграции не принесло пользы - ошибка сохранилась. Я использовал общее предложение, чтобы установить инициализатор равным нулю:

Database.SetInitializer<DomainContext>(null);

И это сделало ошибку исчезла, когда я получаю доступ к базе данных. Но это меня очень беспокоит - всякий раз, когда я пытаюсь выполнить миграцию через код, я снова вижу похожую ошибку:

var configuration = new Migrations.Configuration();

configuration.TargetDatabase = new DbConnectionInfo("correct connection string", "System.Data.SqlClient");

var migrator = new DbMigrator(configuration);

migrator.Update(); // <<-- exception is thrown here

Исключительный бросок выглядит так:System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException: невозможно обновить базу данных в соответствии с текущей моделью, поскольку имеются ожидающие изменения и автоматическая миграция отключена. Либо запишите ожидающие изменения модели в миграцию на основе кода, либо включите автоматическую миграцию. Установите в DbMigrationsConfiguration.AutomaticMigrationsEnabled значение true, чтобы включить автоматическую миграцию.

Я обновился до EF 6.1 (раньше был на 6.0.2), но это не имело никакого значения.

Еще одна вещь, которая беспокоит меня, что я могу запустить миграцию через консоль Nuget:

Update-Database

Работает нормально и не дает никаких проблем. Но когда я установил инициализатор БД для автоматического запуска миграций:

var initializer = new MigrateDatabaseToLatestVersion<DomainContext, Migrations.Configuration>();
Database.SetInitializer(initializer);
var domainContext = new DomainContext();
domainContext.Database.Initialize(true); // <<-- this throws exception

Невозможно обновить базу данных в соответствии с текущей моделью, поскольку есть ожидающие изменения и автоматическая миграция отключена. Либо запишите ожидающие изменения модели в миграцию на основе кода, либо включите автоматическую миграцию. Установите в DbMigrationsConfiguration.AutomaticMigrationsEnabled значение true, чтобы включить автоматическую миграцию.

На самом деле вопрос в том, почему EF имеет разные хэши для моделей при запуске через консоль Nuget и через Migrations DB-Initialiser? Как узнать, чем отличается (модель от db-состояния)? И как это исправить, чтобы мне не приходилось использовать хаки (назначить нуль для db-initaliser)?

Ответы на вопрос(2)

Ваш ответ на вопрос