Таблицы не создаются автоматически после публикации в Azure и запуска приложения?

Я взял на себя проект Asp.net Mvc 5, который сначала использует код Entity-framework, и он был опубликован на веб-сайте Azure. ApplicationDbContext (DefaultConnection) был установлен правильно, а Execute Code First Migrations (runs on application start) проверено.

Я удалил все таблицы в базе данных и заново опубликовал сайт. Однако я получил сообщение об ошибке "Не удается найти объект "dbo.xxxx", поскольку он не существует или у вас нет разрешений." при открытии сайта в браузере.

Я попытался удалить все таблицы в базе данных Azure Sql Server и повторно опубликовал проект. Однако после открытия сайта создаются только следующие таблицы.

AspNetRoles
AspNetUsers
AspNetUserClaims
AspNetUserLogins
AspNetUserRoles
__MigrationHistory

Все DbSet<...> всех остальных таблиц помещаются в класс ApplicationDbContext в файле IdentityModels.


person ca9163d9    schedule 24.02.2014    source источник
comment
что IDatabaseInitializer вы используете? также вы можете добавить теги entity-framework и code-first-migrations к своему вопросу   -  person ahmelsayed    schedule 24.02.2014
comment
Я думаю, что нет никакого класса IDatabaseInitializer. В проекте используется стандартный шаблон, в котором нет класса IDatabaseInitializer.   -  person ca9163d9    schedule 24.02.2014


Ответы (1)


попробуйте использовать инициализатор MigrateDatabaseToLatestVersion, проверьте раздел "Автоматическое обновление при запуске приложения (инициализатор MigrateDatabaseToLatestVersion)" здесь

это должно выглядеть примерно так

Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext , Configuration>());
var appDbContext = new ApplicationDbContext();
appDbContext.Database.Initialize(true);
person ahmelsayed    schedule 25.02.2014