Выполнение кода при первой миграции затенено в настройках публикации
Использование Windows Azure и попытка опубликовать мое приложение MVC3. Флажок Выполнить код первой миграции на панели настроек веб-приложения "Публикация" недоступен. Какие изменения мне нужно сделать, чтобы включить его?
2 ответа
Я полагаю, что при попытке опубликовать приложение MVC отключено следующее "Выполнение кода при первой миграции":
Это может быть связано с тем, что либо вы не пишете полный код для переноса кода в вашем приложении, либо нет, либо неправильно настроены БД в вашем файле web.config, как описано здесь.
Чтобы включить миграцию кода, у вас должна быть настроена БД (в случае Windows Azure вам необходимо предоставить информацию о базе данных SQL в web.config) в web.config, и полный класс написан о том, как будет происходить миграция кода. зависит от вашей модели. Вот пример того, как этого добиться.
Я предполагаю, что у вас уже есть модель Entity Framework и в вашей базе данных (если нет, то вам нужно немного почитать, ответ от @AvkashChauhan был бы действительно хорошей отправной точкой).
Однако, если у вас есть модель и все конфигурации, такие как:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new YourEntityMap());
}
и все отображения сущностей, такие как:
public class YourEntityMap : EntityTypeConfiguration<YourEntity>
{
public YourEntityMap()
{
this.HasKey(t => t.Id);
}
}
и вы по-прежнему не активированы чертовски флажок, вы можете сделать следующие шаги:
Идти к Tools
> NuGet Package Manager
> Package Manager Console
Тогда в консоль пиши
Enable-Migrations -ContextTypeName Company.Models.YourDevContext
где Company.Models.YourDevContext
ваш контекст базы данных (ищите класс, который наследует от DbContext
должен быть таким же, который имеет OnModelCreating
переопределить).
после запуска команды вы должны получить что-то вроде:
На этом этапе вы должны иметь Migrations
Папка добавлена в решение больше о том, как обрабатывать миграции здесь
Надеюсь, это сэкономит вам время.