2013-02-19 6 views
3

Итак, у меня есть проект MVC4, работающий на localhost, и пришло время загрузить его в общую среду.Код сущности сначала с общим хостингом DB

Будучи тем, что я использую общую среду размещения, я не могу использовать встроенные инициализаторы. Поэтому я создал резервную копию моего файла mdf (.bak) и загрузил его в свою производственную среду. Все выглядело правильно ... Все таблицы были там ... но когда я запускаю свое приложение, я получаю это исключение:

Модель, поддерживающая контекст «YourContext», изменилась с момента создания базы данных. Рассмотрите возможность использования First First Migrations для обновления базы данных (http://go.microsoft.com/fwlink/?LinkId=238269).


Получил это!

Я добавил пользовательский инициализатор.

public class ProductionInitializer : IDatabaseInitializer<AvariceContext> 
{ 
    public void InitializeDatabase(AvariceContext context) 
    { 
    } 
} 

Решение ... хакерское, но работает. Если бы кто-нибудь мог пролить свет, я был бы признателен.

+0

Я нашел таблицу в MigrationHistory системы. Матч два DBS. – user2085865

ответ

0

Если вы уверены, что не обновили модель EF с момента создания базы данных, вы можете просто удалить таблицу _MigrationHistory. Это просто используется для обеспечения синхронизации db и модели, но она не работает в сценарии, который вы выделили.

В будущем вы все еще можете использовать функцию Migrations EF, добавив «-script» к флагу в команду update-database, которую вы выполняете в среде разработки, как показано ниже. Это создаст сценарий миграции, который вы можете выполнить в производственной базе данных.

> update-database -script 
0

"Понял работает! Я добавил пользовательский инициализатору."

Почему это работает: Вы можете получить доступ к базе данных, несмотря на то, что EF видит какую-то тонкую разницу. Ваш код реализует IDatabaseInitializer и игнорирует возможность (пустой метод) для инициализации или MIGRATE до последней версии. Таким образом, Ef считает, что DB не прав, и вы все равно продолжаете.

Непрерывный взгляд на устойчивый доступ к EF. Я бы посмотрел, как работает Migrate для последней версии.

Будучи, что я использую виртуальный хостинг среды я не могу использовать встроенный в инициализаторах.»

Почему нет?

Смежные вопросы