2016-01-10 1 views
2

Я пытаюсь использовать усилию, чтобы проверить мое заявление, но если код-первых миграции включены в контексте, то он выдает следующее исключение:Entity Framework 6 бросков миграционного исключения при попытке создать контекст с Усилиями

System.InvalidOperationException: Миграции разрешены для контекста «XDbContext», но база данных не существует или не содержит сопоставленных таблиц. Используйте «Миграции» для создания базы данных и ее таблиц, например, запустив команду «Обновить базу данных» из консоли диспетчера пакетов.

Если отключить миграцию, все работает нормально.

Как прекратить сущность даже с учетом миграции для целей моих тестов.

ответ

1

Несколько методов. Вы можете установить инициализатор базы данных пустое значение:

Database.SetInitializer<DatabaseContext>(null); 

Вы можете отключить инициализатору в web.config: https://msdn.microsoft.com/en-us/data/jj556606.aspx?f=255&MSPPError=-2147217396#Initializers

Если ваша модель уже в курсе, просто убедитесь, что у вас есть automigrations инвалидов:

AutomaticMigrationsEnabled = false; 
5

Я продолжал получать ту же ошибку в своем модульном проекте тестирования. Я решил его, изменив функцию TestInitialize путем вызова функции CreateIfNotExist()

[TestInitialize] 
    public void Initialize() 
    { 
     DbConnection connection = Effort.DbConnectionFactory.CreateTransient(); 

     context = new MyAccessContext(connection); 
     context.Database.CreateIfNotExists(); 
     service = new YourClass(context); 
    } 
+1

Имел проблемы, описанной Стивом с усилию, Entity Framework 6.0.0 и инициализатору DropCreateDatabaseAlways. Добавление вызова 'CreateIfNotExists()', как было предложено выше, исправил его. Однако добавление 'context.Database.CreateIfNotExists();' больше не требуется после обновления в Entity Framework 6.1.3. –

+1

У меня была такая же проблема, и обновление до Entity Framework 6.1.3 решило ее, как упомянул Лаури Харпф. – Kenci

+1

Примечание. Если вы установите Effort.EF6 перед Entity Framework, Effort отправит с более низкой версией Entity Framework, чем v 6.1.3, что означает, что она не будет работать. Вам необходимо обновить его вручную. – Kenci