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

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

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

в EF 4.1 это может быть отключена путем удаления IncludeMetadataConvention из ModelBuilder. Однако в пункте 4.3 эта конвенция устарела и более не действует.

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

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

2 ответов


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

Database.SetInitializer<MyContext>(null);

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

Database.SetInitializer<MLTServerWatcherContext>(null);

или при использовании более старой версии EF

modelBuilder.Conventions.Remove<IncludeMetadataConvention>();

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