Вы можете использовать логический флаг для отслеживания - это нечетная или четная строка, то есть
$isOdd = true;
while(...){
if($isOdd) echo '<li style="background: #222;"></li>';
else echo '<li></li>';
$isOdd = ! $isOdd;
}
Этот подход (
blockquote>MyContext.Database.Migrate();
) не для всех. Хотя это отлично подходит для приложений с локальной базой данных , большинству приложений потребуется более надежная стратегия развертывания, например, создание сценариев SQL.При развертывании в Azure вы можете добавить следующий код в метод Configure в Startup.cs
using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope()) { scope.ServiceProvider.GetRequiredService<ApplicationDbContext>().Database.Migrate(); }
. Для более подробной информации вы можете обратиться к этому SO потоку .
Очевидно, что в Entity Framework CORE нет способа запустить миграцию. Еще несколько месяцев назад у опции публикации в Visual Studio был флажок «выполнить миграцию», но теперь этого нет.
Вы можете попытаться запустить
dotnet ef database update
или какой-либо подобный скрипт на сервере, но это вернуло слишком много ошибок, чтобы упомянуть. Поэтому вместо этого я попытался сгенерировать сценарии SQL, которые выполняются в соответствии с
dotnet ef migrations script
с различными переключателями и т. Д., Но это приводило к различным ошибкам. В конце концов я нашел это.
Script-Migration -from 20190306131332_migration1 -o fileName.sql
, который успешно генерирует SQL для запуска вручную с базой данных.
-from
- последний запуск миграции, поэтому, если я хочу получить все изменения, так как миграция1 (т.е. миграция2, миграция3 и т. Д.) - это миграция -from
, критерии
. Это создаст файл. называется filename.sql
в корневом каталоге, где находится файл .sln
.