Подтвердить что ты не робот

Как отключить проверку совместимости моделей в Entity Framework 4.3?

Я работаю с EF 4.3 и имею контекст, которому нужно поговорить с базой данных, которая была сгенерирована другой библиотекой с использованием EF Code First 4.3. Контекст бросает исключение с указанием

Модель, поддерживающая контекст контекста, изменилась с тех пор, как     была создана база данных. Рассмотрите возможность использования Первых Миграций Кода для обновления     база данных

В EF 4.1 это можно отключить, удалив IncludeMetadataConvention из ModelBuilder. Однако в 4.3 это соглашение устарело и больше не имеет эффекта.

Как я могу связать контекст EF 4.3 с созданной EF 4.3 сгенерированной базой данных из другого контекста? Единственный вариант, который я нашел (далекий от идеала), - это удалить таблицу метаданных, тем самым заставив оба контекста предположить, что база данных не была создана с помощью EF.

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

4b9b3361

Ответ 1

Установка инициализатора на null пропустит проверку совместимости модели.

Database.SetInitializer<MyContext>(null);

Ответ 2

Для EF 4.3 или выше

Database.SetInitializer<MLTServerWatcherContext>(null);

Или, если используется более ранняя версия EF

modelBuilder.Conventions.Remove<IncludeMetadataConvention>();

(Я знаю, он сказал, что он использует EF 4.3, но я думаю, что это хорошо, чтобы показать этот вариант тоже)